2014-09-01 6 views
0

엔티티와 하위 항목의 두 가지 모델이 있습니다. 엔티티는 여러 개의 연결된 하위 항목을 가질 수 있습니다 (하나 : 많은 관계).RESTful URL - 새 하위 항목 얻기

서버에 새로운 하위 성을 반환하는 메소드가 있습니다 (GetEmptySubentity). 요점은, 새로운 Subentity를 만들고 싶을 때, 당신은 버튼을 누르고 모델은 미리 채워진 몇몇 필드가있는 서버에서 나온다. Subentity pre-filled 값 중 일부는 Entity에 따라 다르므로이 요청에서 엔티티 ID를 전달해야합니다.

빈 서브 엔티티를 가져 오는 정확한 URL은 /Entity/{id}/Subentity/empty과 같아야합니까? 아니면 뭔가 잘못 됐어?

답변

0

예. uniform interface/hateoas constraint에 따르면 REST 클라이언트에 하이퍼 링크를 보내야하며 하이퍼 링크를 따라 API를 사용해야합니다. 이렇게하려면 HTML, ATOM + XML, HAL + JSON, LD + JSON & 히드라 등 하이퍼 미디어 형식이 필요합니다 (google 사용). 그래서 HTML 결과는 기본 값 등을 갖는 입력 필드가있는 HTML 폼을 포함해야합니다. RDFa를 사용하여 RDFa에 대한 의미를 추가해야합니다. 따라서 REST 클라이언트가 알 수있는 HTML을 처리함으로써 링크가 새로운 의지. Ofc에서는 다른 하이퍼 미디어 형식을 구문 분석하기가 더 쉽습니다. 그들에 의해 RDF (예 : JSON-LD 또는 ATOM)와 동일한 개념을 사용하거나 벤더 고유의 MIME 유형 (예 : HAL 또는 ATOM)과의 링크 관계를 사용하거나 입력 필드를 설명하는 사용자 정의 솔루션을 사용할 수 있습니다 . 따라서 대개 하이퍼 링크로 필요한 정보를 얻고 기본값을 얻기 위해 다른 요청을 보낼 필요가 없습니다.

작업을 복잡하게 만들려면 속성 값을 보내고 입력 필드가 포함 된 양식을 보내지 않으려면 항목 자체를 기본값으로 요청할 수 있습니다. 선택적으로 전체 링크를 반환하는 요청을 보낼 수 있습니다. 예를 들어 GET /Entity/{id}/SubEntity/offset=0&count=0은 빈 하위 배열 및 양식을 반환 할 수 있습니다. 해당 양식이 너무 크고 SubEntity 컬렉션과 관련된 모든 응답과 함께 보내지 않으려는 경우 추가 쿼리 또는 경로 매개 변수를 사용할 수 있습니다. URL 사양에는 경로에 계층 적 부분이 포함되어야하며 쿼리에는 URL의 비 계층 적 부분이 포함되어야한다는 내용 만 나와 있습니다.

btw. REST는 전달 메소드 일 뿐이므로 데이터베이스 엔티티에 맵핑하지 않아도됩니다. REST 리소스와 URL 구조는 데이터베이스와 완전히 다를 수 있습니다. REST, 심지어 파일 시스템의 모든 유형의 데이터 저장 메커니즘을 사용할 수 있기 때문에 ...