Extra Form
PHP PHP 7.4
CMS Rhymix 2.x

그누보드 써보려다 문서도 없고  REST API없어서 라이믹스를 알게되었는데 여기 사이트에도 문서를 찾을수가 없는데 어디에서 찾을수가 있을까요

 

 REST API, Doxygen 문서 같은거 있을까요

 

  • Lv24

    라이믹스는 CMS(콘텐츠 매니지먼트 시스템)(그냥 홈페이지 만드는 프로그램)이지 REST API(뭔가를 요청하여 json데이터를 가져오거나 api를 제공서비스를 해주는 프로그램)를 제공해주는 프로그램이 아닙니다.

    어떤 이유에서 찾으시는 REST API를 의미하시는지 어느정도 말씀해주시면 좋을 것 같은데요..

    어떤 스킨이나 모듈같은 프로그램을 개발하길 희망하신다면 https://xe1.xpressengine.com/dev_guide 해당 링크의 개발가이드를 참고하세요.

    라이믹스공홈을 보셨더라면 xe1문서를 봐야하는 이유는 아실거라 믿습니다 :)

  • Lv24 ?

    그거 봤는데 오래된 문서더라고요
    xe코드랑도보니 라이믹스랑 코드가 대단히 많이 달랐습니다
    저 문서가 유효한거맞나요???
    xe보니 업데이트 안된다고 쓰지말라던데 업데이트도 안되는 저 문서를 봐도되나요???

    거의 10년전 문서이고 라이믹스 기능에 대한 설명도 전혀 없을것같은데
    doxygen으로 자동 생성된 문서도 라이믹스 문서도 없나요?

    라이믹스 오피셜에 있는 문서가 전부인가요. 그거 반에반쪽도 안돼보이던데요

    근데 외부 연동할 수 있는 API가 없어요???

    회원관련(정보조회.  로그인), 게시판 관련 (목록. CRUD) 기본적인 API도 없어요?

  • ? Lv24
    API가 무슨API를 원하시는건가요?

    어떤 부분을 알고 싶으신건지 궁금하네요

    "무엇을 어떻게 하고 싶은데 이렇게 응용하기 위해 어떠한 내용이 있으면 좋겠다" 라고 정의좀 해주실 수 잇을까요?
  • ? ?
    라이믹스는 xe를 기반으로 만들어진 cms입니다.
    코드가 대단히 많이 다르다는건 어떠한 착각에서 시작되신게 아닐까 싶네요.
    xe는 api에 대해서 지원하지 않습니다.
    쿼리를 요청하고, json/xml 형태로 결과를 불러오는 자바스크립트 명령어는 지원합니다.
    이걸 활용하면 답을 찾을 수 있겠죠.
  • Lv24 ?
    외부 앱에서 JSON으로 데이터를 받아오면 됩니다
    아니..... REST API가 뭔지 아시는거죠?
    회원 정보, 게시판 글/댓글 CRUD 있으면 됩니다
  • ? Lv24

    외부앱에서 json으로 데이터 받아오고 싶으면 REST API가 있는 다른 프로그램 쓰세요.

     

    먼저 말씀드렷다 시피 라이믹스는 CMS라고 말씀드렸습니다.

    아니면 라이믹스에서 직접 개발하시고요. 그깟 REST API모듈 개발가능합니다.

    XE1의 개발 문서참고하시고 기본적으로 라이믹스에서 배포하는 모듈들의 tpl 폴더의 내용들을 참고하여 모듈제작 라이믹스에 맞춰서 개발가능합니다.

    그 정도 앱을 개발하실 능력있으시고 그 정도 지식이 있으면 남의 코드를 보면서 어느정도 개발 할 수 있는 능력이나 이 프로그램의 어디까지 지원되는지 그런 부분은 저 보다 님이 더 잘 알 수 있을 것 같다는 생각이 듭니다.

    관련 하여 저는 비슷한 json api가 필요해서 해당 내용을 비슷하게 구현하는 방법들을 이 사이트에 공유한 적도 있고, 라이믹스내에 다른 플랫폼인 discord, twitter, facebook 등등의 REST API를 이용하여 로그인시켜주는 기능과 coolsms 이라는 회사의 sms REST API v3 ~ solapi REST API를 라이믹스내에서 사용할 수 있도록 개발한적도 있습니다.

    그깟 REST API가 무엇인지에 대한 내용 모르지 않습니다.

    답변자 입장에서 님이 어떤 상황인지 어떤 내용을 알고 싶은지 님이 말하는 REST API가 다른 것이 아닐지 그런것들을 종합적으로 생각해서 말씀드린 답변에 댓글이 좀 까칠하시네요.

     

    XETOWN에서는 기존부터 질문자에 대한 가이드를 공지를 통해서 안내하고 있었습니다.

     

    부족한 정보에 답변을 해주고 싶어도 제가 님애 대해서 알 수 잇는게 없엇기 때문에 그렇게 답변드린 것 입니다.

     

    그에 대한 정보를 제공하지 않은 부분에 대해서는 인정하시죠?

     

    https://xetown.com/questions/585558

  • ? Lv24
    코드 베이스는 솔찍히 다르게 보일 수 있어요.

    xe1문서가 오랫동안 수정이 안되엇고 솔찍히 지원중단과 마찬가지잖아요.

    그런상태에서 xe1문서에서 최대한 저희가 지원하는 최소한의 정보만을 제공하고 잇고, 새롭게 개발되는 라이믹스 신기능만을 문서에 담고 잇는 상황이고요.

    내부적으로 구동되는 구조가 뭔가 다르게 보일 수 있는데 네임스페이스나 개발 능력이 된다면 그것정도 볼 수 있도록 코드 베이스 잡아서 개선은 차차 시키고 있고.. xe1자체가 워낙 비효율적이거나 문제가 좀 잇던 코드들이 있엇으니까요 ㅎㅎ
  • Lv24 ?

    그렇지않아도 SSO 기능 추가해야해서 모듈 보다가 코드보고 파악하기 힘들어서 정말 문서가 라이믹스 오피셜에있는게 전부인건가 했습니다
    doxygen으로 자동 생성된 문서 조차도 없으면 제가 빌드해야죠뭐 어려운것도 아니고

    개발자이신것같은데.
    "글, 회원 데이터 CRUD를 위한 REST API"
    이 단한줄 외에 설명이 필요한가요...

  • ? Lv24

    "글, 회원 데이터 CRUD를 위한 REST API"
    를 제가 되물어서 남겨주셨지, 처음부터 남겨주셨엇나요? (지금 보니 해당댓글을 늦게 본건지.. 아니면 수정되엇는지 잘 모르겠지만..있었네요..  우선 앞선 첫 글에서 제가 봣을 당시에는 해당 내용이 없었기에 되 물어봤던 것입니다. -추가수정)

    그래서 답변 받은 내용을 가지고 제가 답변 드린겁니다.

     

    내부적으로 라이믹스에서 제공하는 SSO기능도 일딴 라이믹스에서는 제거할까 고민하고 있긴한 상황이긴한데요..

     

    관련된 부분 REST API모듈 만드시는게 좋겠네요. 라이믹스는 CMS라고 먼저부터 계속 말씀 드렸습니다.

     

    없는건 만드셔야죠.

  • Lv24 ?

    물어보시길래 "
    회원관련(정보조회. 로그인), 게시판 관련 (목록. CRUD) 기본적인 API도 없어요?"라고 답변했는데

    "API가 무슨API를 원하시는건가요?

    어떤 부분을 알고 싶으신건지 궁금하네요

    "무엇을 어떻게 하고 싶은데 이렇게 응용하기 위해 어떠한 내용이 있으면 좋겠다" 라고 정의좀 해주실 수 잇을까요?"
    라고 또 물어보셔서요...

    앱을 어떻게 만들건지까지도 설명해야하나요?

  • ? Lv24
    음.. CMS라고 먼저 말씀드렸다면 솔찍히 답변은 끝났던 상황이라고 생각하는데요..

    CMS라는것은 그냥 콘텐츠를 관리해주는 프로그램일뿐이거든요 ㅎㅎ
  • Lv24 ?
    그렇긴 한데 제가 최근에 보았을때도 크게 다른점은 안보였거든요. 그래서 그렇게 남겨뒀었습니다 😁
  • ? ?
    너무 빙 돌아가는듯 싶어서 제가 답변드리자면
    "RESTful API를 XE/라이믹스에서는 지원하지 않고, RESTful 형태의 API를 직접 제작하시려면 XE/라이믹스 모듈을 제작하시거나 별도의 PHP처리를 진행하셔야 합니다"
    라고 요약할 수 있겠네요.
  • ? Lv24
    외부 모바일 앱의 (IOS + Android의 푸시 데이터를 연동하는 api가 비교적 최근에 개발된 적 있긴하네요.

    https://github.com/rhymix/rhymix/pull/1325

    이건 아직 문서화는 안되었는데 님이 찾으시는 그런 글정보라던지 이런 내용들은 없이 그냥 푸시 알림을 위한 개발된 사항일뿐입니다.
  • ? ?
    없군요.
    군더더기없는 아주 깔끔한 답변 감사드립니다
    아직 정회원 등업을 못해서 '좋은답변'을 못눌러드렸습니다
  • Lv24 ?
    SAML SSO 기능이 있나요?
    그게있으면 다행인데 문서에 없어서요
    코드 다시 찾아봐야겠네요
  • ? Lv24

    님께서 찾으시는 SSO와는 거리가 멀 것 같습니다.

    외부앱이나 일부 다른 그누보드 같은 보드 타입이라던지 등등에서 네이티브로 가져오는 기능은 아닙니다

     

    라이믹스에서 하나의 라이믹스안에 여러 멀티도메인을 등록할 수 있는데 그 도메인들모두 SSO기능으로 로그인세션을 공유해주는 기능정도라서요..

  • Lv24 ?

    아.... 뭔지 알것같네요

    워드프레스 k보드 맘에 안들어서 그누보드에 여기까지 왔는데 만들어야할게 많네요

    답변 감사합니다

    그누보드는 아예없고 라이믹스도 문서가 너무 없네요. 10년전 문서는 솔직히....

  • ? Lv24

    기본적인 모듈 개발에 필요한 내용이 변한 점이 거의 없어서 참고 하셔도 괜찮습니다.

     

    기존코딩 방식을 호환해주기에 그냥 참고하셔도 되요

  • Lv8
    10년 전 문서 가지고도 개발 잘 하는 사람들 많습니다.
    물론 그것만 가지고 부족해서 소스를 보고 함수나 구조를 파악하기도 하지만 그 정도는 개발자라면 해야죠
  • Lv8 Lv37
    XE와 최대한 호환되도록 만들다 보니
    모듈/애드온/위젯/레이아웃 등의 내부 구조, XML 쿼리 문법 등 대부분의 스펙이
    10년 전이나 지금이나 크게 달라지지 않았다는 것이 함정이죠..... 크흑
  • Lv37 Lv8
    그만큼 호환성을 위해서 노력하고 있다는 거죠
    정말 훌륭한 겁니다 ㅎ
  • Lv8 ?

    매뉴얼은 단순히 스펙시트가 아니죠.
    구조나 기능에 대한 개발의도나 어떻게 활용해야하는지 베스트 프렉티스를 살펴보는데 최소한의 기반 정보를 제공하는 역할을합니다.
    그것도 없다는건 저처럼 처음쓰는 사람에겐 가혹하네요

    라라벨이나 워드프레스가 기능뿐만 아니라 매뉴얼이 친절해서 첫진입이 어렵지않고 어떤식으로 사용하고 개발하면되는지를 알수있다는 겁니다

    기능 설명도 잘되어있으면 좋지만 그거야 10년전 문서라도 본다치고. doxygen 문서도 제가 스스로 빌드해서 본다쳐도 어떤 방향을 기능을 만들어붙여야 할지에대한 가이드가 전혀없네요

     

    xe와 라이믹스의 차이가 10년간 https://rhymix.org/manual/introduction/xe-upgrade 이 문서 하나에 담긴 정도 밖에 없는건 아닐거잖아요

     

    뭐 아무튼 매뉴얼이 뭐 어쨌든 있다 없다만 물어본 질문이었는데 이렇게 장황하게 이어질줄은 정말 몰랐네요 

  • Lv37

    윗분들이 쓸데없는 논쟁에 시간을 많이 낭비하신 것 같은데요...

    • CMS는 기본적으로 웹을 통한 콘텐츠 관리 기능에 치중하는 경향이 있으며 라이믹스도 예외가 아닙니다. 개발 경험이 없는 일반인도 마우스 클릭만으로 조작할 수 있도록 하는 것이 목적이므로 REST API처럼 개발자들만 쓰는 기능은 우선순위에서 많이 밀리곤 합니다.
      • 어떤 기능이 없다고 아쉬워하시는 개발자분들께는 언제나 두 가지 옵션이 있습니다. 오픈소스 개발에 직접 참여하셔서 필요한 기능을 만들어 주시거나, 그럴 시간도 없다면 라이믹스를 쓰지 마시거나... 누구는 뭐 시간이나 돈이 남아돌아서 이런 걸 공짜로 배포하나요?
         
    • 그러나 웹을 통해 수행하는 글 작성 및 삭제, 추천, 신고, 회원가입 등 대부분의 액션들은 정해진 규격을 따라 AJAX POST 요청으로 이루어집니다. CRUD 중 CUD에 해당하는 부분은 모두 AJAX POST 요청입니다. 예를 들어 procDocumentVoteUp 엔드포인트에 게시판 식별자를 mid로 넘기고 글번호를 target_srl로 넘기면 추천이 되고, 업데이트된 추천수를 JSON으로 반환합니다.
      • 물론 HTML form에서 시작하여 발전해 온 규격이기 때문에 처음부터 API로 설계된 프로그램에 비하면 URL 구조나 파라미터명이 깔끔하지는 않지만, 개발자도구를 사용하여 어떤 정보가 오가는지 분석하고 그대로 따라하면 얼마든지 API처럼 활용할 수 있습니다.
      • 즉, 별도의 API를 제공하지 않는 가장 큰 이유는 "중복 기능이기 때문"입니다.
         
    • CRUD 중 R에 해당하는 부분은 게시판 모듈 등에서 기본적인 API를 제공하기도 합니다. 그러나 누구에게 어떤 정보를 표시할지 스킨 소스에서 판단하는 사례가 많은 한국식 게시판 특성상, API로 모든 정보를 제공하면 스킨에서 판단하는 기준과 동기화되지 않아서 예상치 못한 보안취약점으로 이어질 수 있습니다.
      • 스킨에서 글쓴이의 정보를 숨기도록 하여 익명 사이트를 운영하고 있는데 API에서 모두 노출된다거나 하는 취약점이 XE 시절부터 지속적으로 발견되어, 현재는 아주 제한적인 정보만 API로 제공하고 있습니다.
      • 기본 제공되는 항목 이외에 다른 정보를 제공하고 싶다면 운영하시려는 사이트의 필요에 맞추어 커스텀 모듈을 제작하기를 권장합니다.
      • 즉, 별도의 API를 제공하지 않는 두 번째 이유는 "보안취약점 때문"입니다.
  • Lv37 ?
    답변 감사합니다

    보안취약은... 서버간 통신은 비공개키나 클라이언트는 토큰이나 인증 세션만으로도 워드프레스 줌라 라라벨 등에서 모두 공식적으로 제공하거나 플러그인으로 제공하는데 버그나 미쳐놓친것 때문이 아닌이상 보안취약점인지는.....

    더이상 선택지가 없어서 이걸 써야겠지만 아쉽네요
  • ? Lv19
    "CRUD 중 R에 해당하는 부분은 게시판 모듈 등에서 기본적인 API를 제공하기도 합니다. 그러나 누구에게 어떤 정보를 표시할지 스킨 소스에서 판단하는 사례가 많은 한국식 게시판 특성상, API로 모든 정보를 제공하면 스킨에서 판단하는 기준과 동기화되지 않아서 예상치 못한 보안취약점으로 이어질 수 있습니다."

    "어떤 기능이 없다고 아쉬워하시는 개발자분들께는 언제나 두 가지 옵션이 있습니다. 오픈소스 개발에 직접 참여하셔서 필요한 기능을 만들어 주시거나, 그럴 시간도 없다면 라이믹스를 쓰지 마시거나... 누구는 뭐 시간이나 돈이 남아돌아서 이런 걸 공짜로 배포하나요?"

    위 두 부분을 통째로 읽지 않으신것 같아 보입니다. 공개되지 않은 정보를 확인 가능한 건 취약점이라 부를 수 있으며 아쉬우시다면 직접 기여하시면 됩니다.
  • ? Lv37

    보안취약점으로 인정하는 기준이 다릅니다.

    예를 들어 워드프레스 API를 사용하면 비공개가 아닌 모든 글을 볼 수 있고, 작성자의 아이디도 알 수 있고, 서로 다른 글을 동일인이 작성했는지도 간단하게 파악할 수 있고, gravatar와 연동해서 조금만 뒤져보면 실제로 누구인지 알아내는 것도 불가능하지 않습니다. 소수의 운영자가 모든 글을 작성하는 블로그라면 이런 정보가 노출되어도 문제가 되지 않는다고 가정하는 것입니다.

     

    반면, 라이믹스를 사용하는 한국의 커뮤니티 사이트들은 레벨에 따른 복잡한 권한 구분, 익명글 기능 등 독특한 문화가 있습니다. 게시판마다 글마다 접근 권한이 복잡하게 나뉘고, 권한에 따라 임의의 필드를 숨기거나 값을 변조하여 표시하기도 하며, 작성자의 신원이나 동일인 여부를 유추할 수 있는 실마리라도 남겨두었다가는 심각한 문제가 될 수 있습니다. 그래서 해외 프로그램들은 대수롭지 않게 넘기는 것도 라이믹스에서는 중대한 취약점으로 취급합니다.

     

    라라벨은 개발자가 사용하는 프레임워크이므로 누구에게 어떤 정보를 제공할지 개발자가 정하기 나름입니다. 그러나 개발자들도 별 생각 없이 SELECT * 결과를 그대로 API로 제공했다가 심각한 정보유출 사고를 일으키곤 합니다. 물론 이건 개발자 책임이고, 프레임워크는 잘못이 없다고 보는 시각도 많습니다. 그러나 라이믹스는 최종 사용자가 개발자가 아니라고 가정하므로, 코어에서 막을 책임을 피하기 어렵습니다.

  • Lv19 ?
    읽었습니다
    딱히 제가뭐라 답변하기 애매해서 뭐라 남기지 않았을 뿐입니다

    근데 이제 처음 사용해보려는 사람인데 기여할거 아니면 쓰지말고 (솔직한 표현으로)꺼지라는 얘기같은데 너무하네요. 이제 기능 파악하는 중인데 너무한거 아닌가요. 매뉴얼이나 기능이 아쉽다는거지 그딴것도 없는 프로그램이냐고 비하하는건 아니잖아요(뭐 말투가 그렇게 보였을수있다면 죄송합니다).

    메인테이너분들이 커뮤니티에서 이런 말이 나오는걸보면 슬퍼하시겠네요. 풀타임지 모르겠지만 어쨌든 열정쏟아부어 만드는게 오픈소스인데 커뮤니티에서 뉴비 쳐내는 이런 반응이라면 메인테이너들 힘빠지실듯
  • ? Lv19

    위 기진곰님이 그 메인테이너십니다. 또한 라이믹스 개발진 중 라이믹스 개발만을 위해 풀타임으로 근무하시는 분은 안계신걸로 알고 있습니다.

  • Lv19 ?
    아...
  • ? Lv37
    요구받는 것이 너무 많아서 지쳐있는 점 양해 부탁드립니다. 개발자든 일반인이든 다 도와드릴 수 있으면 얼마나 좋겠습니까만, 현실은 매뉴얼 작성할 시간도 없네요. ㅠ
  • ? ? Lv3
    사람들은 프레임워크놔두고 cms 가지고 다하려고 그러더군요 개발을 하려면 프레임워크! ㅠ
  • Lv30

    대체로 너무 날이 서 있는 것 같습니다.

    맘 상하지 마시고 천천히 알아보시면 지금 개발 능력이 있으신 듯 하니 충분히 잘 활용하실 수 있을 것 같습니다.

  • Lv30 Lv37

    그러게 말입니다... 저야 뭐 예전부터 일부러 "개발자에게는 까칠하게, 일반인에게는 친절하게" 컨셉을 유지하고 있습니다만 다른 분들까지 앞장서서 라이믹스의 부족한 현 상태를 변호해주실 필요는 없는데 말이죠.

     

    다들 그러시니까 분위기가 이상해져서 오히려 제가 셀프디스 모드로 전환해야 하나, 고민이 됩니다.

  • Lv19
    https://github.com/monoless/xe-oauth-server

    XE 기준으로 개발된 조금 오래된 자료이긴 합니다만 OAuth 2.0 / RESTful API를 구현하는 자료가 있긴 합니다.
  • Lv19 ?
    정말 감사합니다
  • ? ? Lv8
    나중에 이 글을 보며 여기 처음 왔을때 좀 당황스러웠다고 웃어 넘기며 서로 안부 묻는 사이가 되셨으면 좋겠네요.
    XE타운에 오신걸 환영합니다. ^^
  • Lv6
    환영합니다!