나는 파티에 좀 늦었지만, REST가 일반적으로 그리고 Ruby on Rails에서 어떻게 작동해야하는지에 대해 두뇌를 감추려고 노력하고있다. 나는 이미 이것에 관해 온라인으로 많은 기사를 읽었지만, 여전히 큰 그림을 얻고있는 것처럼 느껴지지 않는다.Rails를 개념적으로 Rails로 이해하기
내가 알기에 REST는 일련의 포부 선언문으로, URL 하단에는 최종 결과가 포함되어 있어야하며 요청을 처리하는 데 필요한 모든 정보가 포함되어야하며 도착시에는 상태를 변경할 수 없어야합니다. 서버 및 기타 구체적인 지침을 제공합니다.
내가 알기에 Rails의 REST는 CRUD를 기반으로합니다. 즉, 모든 모델에는 작성, 읽기, 업데이트 및 삭제 작업이 있습니다. 이러한 각 작업은 경로에서 리소스를 매핑하여 생성 된 유사한 URL 집합을 통해 액세스됩니다. 따라서 로그인 URL은 사용자 세션을 생성하므로 URL은 example.com/session/new (POST 포함)이고 logout은 example.com/session/destroy (POST 포함)입니다.
이러한 방식으로 URL을 표준화하면 어떤 이점이 있습니까? 그것은 인간의 가독성을 희생시키면서 기계 가독성을 최적화하는 것으로 나를 공격합니다. 나는 당신이 노선 example.com/login에서 example.com/session/new로 다시 매핑 할 수 있다는 것을 알고있다. 그러나 그것은 나에게 분명히 이득이되지 않는 한 단계 더있다.
지금은 전통적인 경로를 사용하는 웹 사이트를 개발하는 것이 실제로 바람직하지 않다고 생각합니까?
또한 이러한 CRUD 작업 각각은 요청에서 찾는 응답 유형에 관계없이 요청에 응답 할 수 있어야합니다. 따라서 example.com/tasks에 대한 동일한 링크를 example.com/tasks.xml에서 호출하여 결과의 xml 표현을 가져올 수도 있고 json 표현을 위해 example.com/tasks.json을 호출 할 수도 있습니다.
이것은 RESTful API가 사이트의 일반적인 링크 일뿐 XML이 추가 된 것이라고 말할 수 있습니까? 웹 API가 이런 방식으로 작동한다는 것은 매우 이상하고 어색한 것으로 생각되지만, 읽은 모든 것에 내포 된 것 같습니다. 저는 example.com/api/tasks와 같은 링크가있는 API를보고 작업 목록을 얻는 데 더 익숙합니다. 이 접근 방식의 장점은 무엇입니까?
"사람의 가독성을 희생해서"? 나는 모든 것을위한 특정 URL 계획을 고수하고 반대 의견을 말하면 모든 것을 이해하고 작업하기가 쉽습니다. – deceze
그러나 이미 일반 인간 (개발자가 아님)을위한 URL 체계가 있습니다. 모든 웹 지식 사용자가 이미 익숙하게 사용하는 방법은 example.com/login이라면 example.com/session/new가 아닌 login으로 이동할 수 있습니다. 로그인과 같은 경우 REST URL 스키마로 전환하면 어떤 이점이 있습니까? 개발자가 이해하고 작업 할 부담을 덜어주기 위해서? 이것이 최종 사용자의 가독성을 향상시키는 방법을 알 수는 없습니다. –
로그인의 전체적인 개념은 틀림없이 오히려 무방합니다. 왜냐하면 그것은 국가의 개념을 소개하기 때문입니다. 나는 RESTfulness가 URL 스키마를 이렇게 특정한 방법으로 처방한다고 생각하지 않는다.'/ login'은 여전히 당신의 목적에 맞는 완벽한 URL *이다. 나는 * 일반적인 의미 * 특정 스키마를 고집하는 것은 인간의 가독성을위한 * 좋은 *입니다. 이미 말했듯이'/ login'은 이미 허용 된 스키마이므로 괜찮습니다. – deceze