XE로 Json API 개발일지..(?)

최근에 XE를 통해서 Json API형태로 데이터를 전달하는 모듈을 만들었어요.

json을 이용하면 쉽게 타사 사이트에 로그인해서 해당 로그인 계정을 서로 연동할 수 있는 기능도 만들 수 있겠더라고요.

ex)
A사이트에서 B사이트의 소셜로그인 연동 -> A사이트 회원가입 and 로그인

이런것이 가능해 보였어요.

어떻게 이용할까요?

우선 제가 하는 방법은 모두 disp으로 시작하는 액션에 대해서 실행했어요.

ex) dispAttendanceBoard

그러면 어떻게 할까요?

function dispMemberapiCheckMember()
{
    // 이곳을 Json API처럼 Json코드로 반환시킨다.
    Context::setRequestMethod('JSON');
    Context::setResponseMethod('JSON');

    $member_srl = Context::get('member_srl');
    $member_info = getModel('model')->getMemberInfoByMemberSrl($member_srl);

    // 최종 memberInfo를 Json데이터로 전송
    $this->add('member_info', $member_info);
}

위의 코드를 보면 Context::setRequestMethod('JSON');Context::setResponseMethod('JSON');으로 데이터를 Json으로 인코딩하여 보여지는 API형태로 출력을 할 수 있어요.

그래서 위의 페이지에 접속하기위해 접근한다면

http://도메인.com/index.php?act=dispMemberapiCheckMember

으로 접속하게 되는데 이때 나오는 데이터는 여느 Json으로 인코딩하는 데이터와 동일하게 나오게 되는거죠.

즉 XE으로 운영되는 회원정보같은것이 외부 또는 모바일에서 사용과 활용이 가능한 상태가 되는 것입니다!

그럼 어디에 활용할까요?

최근에 제가 인스타그램을 만들면서 로그인에 제약이 있는 문제를 경험하였습니다.

인스타그램에서 스토리스라는 기능이 생겼는데 해당 기능에 내장된 스토리를 가져오기 위해서는 서버를 돌리는 아이피에서 로그인을 인증 해야 정상적으로 사용할 수 있었어요.

하지만 리눅스 서버자체가 gui형태가 아니기 때문에 접속이 안되었죠..

이를 해결하는 방법은 간단했어요.

제컴퓨터에 Apache + PHP + MariaDB를 설치하고 Rhymix를 설치했어요. 해당 라이믹스에 instaserver모듈을 생성하였고 해당 instaserver모듈에서 스토리를 가져오기위한 로그인 연동까지 마친 상태이죠

이렇게 해두면 정상적으로 인스타그램에 로그인이 됩니다. 로그인이 되는순간 스토리를 가져오는 액션을 취하면서 해당 데이터를 PHP데이터로 만들게 되는데요 이를 Json데이터 인코딩화 시키는 것이죠.

실제 서버에서는 제 컴퓨터로 접속을 하게되고 제 컴퓨터에서는 해당 인스타만 가져와서 json으로 인코딩해서 데이터를 디스플레이 하게되는 형태이죠! 그러면 실제로 API서버 구축하기위해서 여러 개발하지 않고 쉽게 API데이터형식으로 구현할 수 있어요!

여러분들도 혹시 필요한 데이터가 있으면 XE으로 API를 전송할 수 잇는 방법도 생각해보세요!

람보

profile
람보입니다.