일부는 실제로 모든 것을 이해하지 못하더라도 오늘날 모든 사람들은 SOA를 수행합니다. 그래서 그들은 잘못하고 있습니다. 그것을 유추로 사용하여 REST 가 무엇인지 (또는 적어도 내가 생각하는 것) 알고 있으며 그중 일부를하고 싶습니다. 그러나 나는 그것을 올바르게하고 싶다.
내 질문은 REST를 수행하는 올바른 방법은 무엇입니까?
일부는 실제로 모든 것을 이해하지 못하더라도 오늘날 모든 사람들은 SOA를 수행합니다. 그래서 그들은 잘못하고 있습니다. 그것을 유추로 사용하여 REST 가 무엇인지 (또는 적어도 내가 생각하는 것) 알고 있으며 그중 일부를하고 싶습니다. 그러나 나는 그것을 올바르게하고 싶다.
내 질문은 REST를 수행하는 올바른 방법은 무엇입니까?
답변:
RESTful 웹 애플리케이션을 빌드하는 방법을 배울 수있는 방법은 많지만 고유 한 올바른 방법은 없습니다. RESTful은 표준은 아니지만 표준 세트 (HTTP, URI, Mime Type 등)를 사용합니다.
이것으로 시작하십시오 : 아내에게 REST를 설명하는 방법
다음으로 진행하십시오 : RESTful 웹 서비스 요리 책
그리고 배우는 가장 좋은 방법은 실험을하는 것이므로 실수로 많은 것을 배울 수 있기 때문에 웹 애플리케이션을 개발하기 위해 모든 노력을 기울이십시오.)
첫 번째 웹 앱이 완전히 RESTful하지 않더라도 걱정하지 마십시오.이를 수행하는 방법을 찾을 수 있습니다!
그래서 오비완 케노비 (Obi-Wan Kenobi)는 "강제력은 당신과 함께 할 수 있습니다!" ;)
편집하다
더 구체적으로 설명하겠습니다. RESTful webapp을 만들고 싶습니까? 글쎄, 내가 할 수있는 많은 방법이 있지만 이것이 주요 지침입니다.
REST (Representational State Transfer) 는 WWW와 같은 분산 시스템을위한 소프트웨어 아키텍처 스타일입니다. 표준은 아니지만 HTTP, AJAX, HTML, URI, Mime Type 등의 표준 세트를 사용합니다. 우리는 자원 자체가 아니라 자원의 표현에 대해 이야기하고 있습니다. '내 아내에게 REST를 설명하는 방법'에서 발췌 :
부인 : 웹 페이지는 자원입니까?
라이언 : 종류. 웹 페이지는 리소스를 나타냅니다. 리소스는 개념 일뿐입니다.
좋아, 우리는 URI를 사용할 수있는 리소스를 식별하는 것을 보았지만, 동작 (추가, 수정, 삭제 등)에는 CRUD (만들기, 읽기, 업데이트 및 삭제)에 대한 환영이 필요하다.
PUT 및 DELETE와 관련하여 일부 기술 문제가 나타날 수 있습니다 (HTML 형식으로 표시됨). 종종 개발자는 각 'PUT'및 'DELETE'요청에 대해 POST를 사용하여이 문제를 무시합니다. 공식적으로 PUT과 DELETE를 사용해야합니다. 그건 그렇고, 당신이 원하는 것을하십시오. 내 경험에 따르면 매번 POST와 GET을 사용하게됩니다.
--- 다음 부분을 사용해야하지만 REST의 유대가 아닙니다 : 연결된 데이터와 관련이 있습니다 ---
기술적 세부 사항에서 추상 URI! 다음과 같이 URI를 작별하십시오.
http://www.example.com/index.php?query=search&id=9823&date=08272012
URI를 다시 디자인하십시오! 위의 링크를 가져 와서 다음과 같이 변경하십시오.
http://www.example.com/search/2012/08/27/9823
훨씬 나아요? 다음과 같이 수행 할 수 있습니다.
다른 것 : 다른 URI를 사용하여 다른 리소스를 나타냅니다.
주의 : about.html 및 about.rdf는 파일이 아닙니다! XSLT 변환의 결과 일 수 있습니다!
이 시점에 도달했다면 축하합니다! 아마도 우리가 시맨틱 웹 기술 세부 사항을 입력하기 때문에 더 추상적 인 개념을 얻을 준비가 된 것입니다.
GET http://www.example.com/about
Accept: application/rdf+xml
그러나 서버는 다른 URI ( http://www.example.com/about.rdf )를 가지고 있기 때문에 about.rdf로 응답하지 않습니다 . 자, 303 패턴을 보자! 서버는 이것을 반환합니다 :
303 See Other
Location: http://www.example.com/about.rdf
클라이언트는 다음과 같이 반환 된 링크를 따릅니다.
GET http://www.example.com/about.rdf
Accept: application/rdf+xml
마지막으로 서버는 요청 된 리소스를 반환합니다.
200 OK
about.rdf
걱정하지 마십시오. 클라이언트 응용 프로그램은이 작업을 수행하지 않습니다! 303 패턴은 서버 응용 프로그램에서 수행해야하며 브라우저는 나머지를 수행합니다.)
종종 이론은 실제와는 거리가 멀다. 예, 이제 RESTful 애플리케이션을 디자인하고 개발하는 방법을 알고 있지만 위의 지침은 힌트 일뿐입니다. 웹 응용 프로그램을 구축하는 가장 좋은 방법을 찾을 수 있으며 이론적으로 원하는 것과 다를 수도 있습니다. 젠장 하지마 : D!
REST API는 하이퍼 텍스트 중심이어야합니다. Roy Thomas Fielding
REST 성경 책 또는 무언가 ....
성서가 필요 없습니다. 나는 똑같은 정확한 질문을 가지고 다음 세 가지 기사를 읽고 REST에 대해 필요하거나 알고 싶은 모든 것을 배웠습니다.
그러나 나는 그것을 올바르게하고 싶다.
위 기사에서 읽을 수있는 핵심은 애플리케이션의 액세스 가능한 부분을 기존 HTTP "동사"(GET, PUT, POST)를 사용하여 작성, 검색, 업데이트 또는 삭제할 수있는 "자원"으로 생각하는 것입니다. 삭제합니다.
또한 PUT과 POST의 차이점 과 사용시기를 알고 있어야 합니다. GET, PUT 및 DELETE는 dem 등원 트랜잭션이어야하며 POST는해서는 안됩니다.
또한 클라이언트와 다시 통신 할 때 HTTP 상태 코드를 올바르게 사용 하십시오.