Extra Form
PHP PHP 7.1
CMS Rhymix 2.0

최근 외부 PHP 파일을 만들어서 API json 리턴을 만들고 있습니다.

예시) 게시판의 mid가 notice인 게시판의 목록을 가져오는 API -> 도메인/api/get_document?mid=notice&page=1

 

이를 모듈로 만들어서 로그인이랑 uid 등을 만들어 푸시 알림을 주는 기능을 만들어 보고 싶은데

매뉴얼만 보고서는 만들고자 하는 바에 대해서 달성할 수 없는 느낌입니다.

 

참고 할 만한 모듈이나, 예제 또는 방법에 대해서 알 수 있을까요?

  • ? Lv3
    curl --location --request POST 'https://xetown.com/index.php?mid=notice&act=dispBoardContentList' \
    --header 'Accept: application/json' \
    --header 'Referer: https://xetown.com/'

    https://curlconverter.com/ 에 사용하고자 하는 언어를 선택하시고 위 curl 명령어를 붙여넣으시면 자동으로 변환해서 보여줄거에요

     

    Referer는 요청하고자 하는 URL의 scheme 및 host와 동일하게 입력해 주세요. 만약 넣지 않을 경우 다음과 같은 오류가 발생해요

    • Rhymix: '보안정책상 허용되지 않습니다.'
    • XE: '잘못된 요청입니다.'
  • ? Lv3 Lv2
    게시판의 경우에는 act로 List를 가져올 수 있군요..
    말씀해주신대로 CURL 명령어를 별도의 php파일로 만들어 동일한 서버에서 sample.php로 실행해 보았으나 빈 화면이 나오고 있습니다.
    별도의 오류 로그도 나오지 않는데 제가 놓친 부분이나 알아야 하는 부분이 있을까요?
  • ? Lv3 Lv2
    엇 jquery로 ajax 요청을 하니 정상적으로 출력됩니다.

    별도의 모듈을 만들어서 한 곳에 모아서 API를 만들고 수정하고 싶은 마음이기도 합니다.
    게시판 모듈 등을 수정하는 것은 좋아하지 않기 때문에요 (업데이트 시의 용이함도 있기에)

    api 라는 모듈을 만들고 뭔가 액션을 볼 수 있는 예제가 있었으면 좋겠는데 제가 못 찾은 것인지..
    찾기가 어렵네요 ㅜ
  • Lv2 ? Lv3
    xetown은 cloudflare를 거치기 때문에 일반적인 브라우저의 요청이 아니라고 판단되면 WAF에 의해 차단될 수 있어요. 어느 사이트에서 게시판의 글 목록을 조회하고자 하는지 알려주실 수 있을까요?
  • Lv2 ? Lv3

    ca-bundle.crt이 오래되어 새로운 발행된 root ca를 인식하지 못해 SSL 요청 시 오류가 발생하는 경우도 있어요. 이 때에는 강제로 오류를 무시하고 연결하는 방법을 사용할 수 있지만 권장되지 않아요.
    https://stackoverflow.com/a/15237205

  • Lv2 ? Lv3
    sample.php 파일의 소스를 댓글로 알려주시면 오류 해결에 도움이 될 수 있어요
  • Lv36

    모듈 생성기에 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 이외의 포맷을 지원할 이유는 거의 없다시피하니까요.

  • Lv36 Lv2
    마침 기진곰의 모듈 생성기로 만들었으나 이게 처음부터 만들어 진 것을 받아서 그런지.. 잘 이해가 되지 않았습니다 ㅠ_ㅠ

    API 예제가 있다면 (DB로 게시판의 정보를 출력하거나, 로그인 정보를 출력하는 등) 좋을 것 같습니다 +_+