RESTful API는 얼마나 이산 적이어야합니까?


12

나는 전에 RESTful API를 만든 적이 없으며 얼마나 불연속 적인지 궁금합니다.

예를 들어 이름, 주소, 전화 번호, 전자 메일 주소, 언어 등이있는 고객이 있다고 가정하겠습니다.

각 개별 필드 (업데이트 주소, 업데이트 이메일 주소 등)를 업데이트 할 수있는 방법이 있거나 전체 고객에 대해 단일 업데이트가 있어야하며 각 필드는 선택 사항이어야합니까?


3
REST의 어느 부분을 원하십니까? 표준에 대해 걱정하지 않고 간단한 API가 필요한 경우 thorsten müller의 승인 된 답변처럼 처리 할 수 ​​있습니다. 실제 REST를 원하면 Roy Fielding (예 : 논문)을 검색해야합니다. 그는 REST의 발명가입니다. 예를 들어 resource == table이라는 아이디어가 사실이 아님을 알 수 있습니다. 예를 들어, 질문에 대해 PATCH HTTP 메소드가 하나 이상의 필드를 업데이트하는 데 사용되는 것이 일반적이라는 것을 알 수 있습니다. POST 또는 PUT (여기에서 토론) 방법을 사용하여 자원을 완전히 업데이트 할 수 있습니다.
Luc Franken

답변:


17

리소스에 대해 하나의 업데이트 작업이 있습니다. 대략적인 경험으로 데이터베이스의 테이블이 리소스가됩니다. 따라서 귀하의 예에는 업데이트 조치가 하나 인 고객을위한 컨트롤러가 하나 있으며 필드는 가능한 한 선택 사항입니다.

이에 대한 예외가있을 수 있습니다 (예를 들어, 비밀번호를 업데이트 할 경우 password & password_confirmation이 필요한 경우). 그러나 대부분의 경우에 해당됩니다.

생성 및 소멸 될 수있는 SessionsController와 같은 일부 자원에 대해 제한된 조치가있는 컨트롤러는 예외 일 가능성이 큽니다. 단일 필드에 대한 조치를 원할 가능성은 거의 없습니다.

귀하의 예에서 한 가지가 자체 리소스로 처리 될 수 있으며 그 주소입니다. 주소 테이블이있는 경우, 특히 고객 당 하나 이상의 주소 (청구, 배달 등)가있는 경우 중첩 된 리소스로 처리 될 수 있습니다. 그러나 전체 주소 리소스에 대한 업데이트 작업이 하나 더 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.