API 모듈을 만들기 위하여
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.1 |
최근 외부 PHP 파일을 만들어서 API json 리턴을 만들고 있습니다.
예시) 게시판의 mid가 notice인 게시판의 목록을 가져오는 API -> 도메인/api/get_document?mid=notice&page=1
이를 모듈로 만들어서 로그인이랑 uid 등을 만들어 푸시 알림을 주는 기능을 만들어 보고 싶은데
매뉴얼만 보고서는 만들고자 하는 바에 대해서 달성할 수 없는 느낌입니다.
참고 할 만한 모듈이나, 예제 또는 방법에 대해서 알 수 있을까요?
얼음조각티
Lv. 3
:)
댓글 8
--header 'Accept: application/json' \
--header 'Referer: https://xetown.com/'
https://curlconverter.com/ 에 사용하고자 하는 언어를 선택하시고 위 curl 명령어를 붙여넣으시면 자동으로 변환해서 보여줄거에요
Referer는 요청하고자 하는 URL의 scheme 및 host와 동일하게 입력해 주세요. 만약 넣지 않을 경우 다음과 같은 오류가 발생해요
말씀해주신대로 CURL 명령어를 별도의 php파일로 만들어 동일한 서버에서 sample.php로 실행해 보았으나 빈 화면이 나오고 있습니다.
별도의 오류 로그도 나오지 않는데 제가 놓친 부분이나 알아야 하는 부분이 있을까요?
ca-bundle.crt이 오래되어 새로운 발행된 root ca를 인식하지 못해 SSL 요청 시 오류가 발생하는 경우도 있어요. 이 때에는 강제로 오류를 무시하고 연결하는 방법을 사용할 수 있지만 권장되지 않아요.
https://stackoverflow.com/a/15237205
별도의 모듈을 만들어서 한 곳에 모아서 API를 만들고 수정하고 싶은 마음이기도 합니다.
게시판 모듈 등을 수정하는 것은 좋아하지 않기 때문에요 (업데이트 시의 용이함도 있기에)
api 라는 모듈을 만들고 뭔가 액션을 볼 수 있는 예제가 있었으면 좋겠는데 제가 못 찾은 것인지..
찾기가 어렵네요 ㅜ
모듈 생성기에 API 예제도 추가해 봐야겠네요.
간단하게만 설명드리자면, 모든 형태의 짧은주소를 사용한다는 가정 하에
1) https://도메인/module/action 을 요청하면 module 모듈의 action 메소드가 실행됩니다. (GET으로 할지, POST로 할지, 리퍼러 체크를 얼마나 엄격하게 할지, 등은 module.xml에서 설정할 수 있습니다.)
2) 해당 메소드 내에서 $this->add(key, val)를 사용해서 반환할 값을 추가하면 JSON 결과로 나옵니다.
3) 간혹 API를 호출할 때 Accept: application/json 헤더가 빠지면 JSON이 아닌 HTML로 나와서 그냥 빈 화면처럼 보일 수도 있으니, Context::setResponseMethod('JSON'); 도 넣어주면 더 확실합니다. 요즘 세상에 API가 JSON 이외의 포맷을 지원할 이유는 거의 없다시피하니까요.
API 예제가 있다면 (DB로 게시판의 정보를 출력하거나, 로그인 정보를 출력하는 등) 좋을 것 같습니다 +_+