Postman 과 Wp REST API 2.0 으로 JWT 서버엔진 만들기 (1)

POSTMan 은 정말 괜찮은 테스트 도구 입니다.

https://www.getpostman.com/ 에서 다운 로드 받으면 되는데, Chrome 의 App 으로 나온 버전과  PC Standalone 버전이 있습니다.

Chrome 버전은 deprecate 이기 PC Standalone 버전을 쓰는 편이 좋을 것 같네요.

POSTMan 은 HEADER, GET, POST 를 자유롭게 에디팅해서 테스트로 밀어넣고 그 결과를 빠르게 확인하기 쉬운 인터페이스를 갖추고 있습니다.

API 를 제작할 때나 API 를 이용하는 앱을 개발할 때 모두 POSTMan 이 큰 도움이 됩니다.

자, 그러면 앱이나 다른 서비스에서 API 를 호출해서 회원가입을 만드는 것을 해 보기로 하죠.

워드프레스의 REST_API 를 활용하기 위해서는 rest_api_init 을 hook 해야 합니다.

이제 add_action 은 특정 시점에 특정 프로그램을 실행하기 위해 필요합니다.

rest_api_init 라는 타이밍에 register_api_hooks 이라는 함수를 실행하는데, 이 함수에는 REST_API 의 permalink 를 핸들링하는 부분이 있습니다.

이 부분이 중요한 라인인데요.

보통 WordPress 를 설치하면 /wp-json/wp/v2/posts 를 하면 설치된 워드프레스의 글 , 그러니깐 post 타입으로 정의된 컨텐츠들을 뿌려주거든요.

register_rest_route 은 wp/v2 처럼 별도로 정의된 REST API 의 route 을 만들어주는 작업이 되는 것이지요.

register_rest_route  ‘msgapi/v1’, ‘/user/register/’, POST , register_user

API 의 namespace 를 매핑하는 파트가 첫 번째, 두 번째 파라미터이고요.

3번째는 REQUEST TYPE 을 정의하는 부분이고 마지막 4번 째는 callback 함수를 선언해주는 부분입니다.

이제 register_user 함수 부분을 볼까요 ?

WP_REST_API 에서는 에러 메세지 코드에 사용되는 파라미터가 code, data, message 이기 때문에, 가급적 비슷하게 만들어 보았고요.

이 부분의 코드는 username email password nickname 을 받아서 wp_users 와  wp_usermeta 에 넣는 작업입니다.

wordpress 는 미리 정의해둔 함수를 사용하여야 합니다.

왜냐하면 다른 플러그인들도 다 유기적으로 엮혀 있기 때문에 이 부분을 $wpdb->query(” insert wp_users .. “) 이런 식으로 회원등록을 할 수도 있겠지만, 그렇게 되면, 다른 플러그인들과 유기적으로 연결된 코드들이 작동하지 않게 될 것입니다.

왜냐하면, 회원 가입과 관련된 플러그인은 wp_create_user 함수 내에 do_action 부분을 add_action 으로 연결하고 있기 때문이지요.

워드프레스 개발의 핵심은 이런 구조적 연결성과 의존성을 이해하는 것입니다.

자, 그러면 POSTMan 으로 회원가입을 만들어 볼까요 ?

API 로 회원가입을 하는건 네임스페이스에 파라미터를 규칙에 맞추어 전송하는 작업을 하면 되는데, 이 과정은 PostMan 으로 하면 좀 더 간편합니다.

Postman 의 Code 부분을 보면 RAW 파일로 호출 URL 값을 확인할 수 있습니다.

이것을 Angular.js 로 구현하려면

다음 편에는 회원 로그인과 JWT 인증, Authorization Bearer 에 관한 이야기를 할까 합니다. 기대해주세요.