RESTful 서비스를 구축하려고하는데 몇 가지 문제가 있습니다. 가상의 RESTful 서비스의 예를 들어 이러한 문제 (질문)에 대해 설명하겠습니다.RESTful에 대한 이해. 복잡한 동작을위한 URI
예를 들어, 내 사이트에 "뉴스"서비스가 필요합니다. 뉴스는 지역 뉴스 및 글로벌 뉴스와 같은 다양한 유형이 될 수 있습니다. 뉴스는 관리자가 추가합니다. 사용자는 지역 및 글로벌 뉴스를 개별적으로 또는 전체적으로 볼 수 있습니다. 뉴스는 페이지별로 표시됩니다. 사용자는 정확한 뉴스를 볼 수 있습니다.
그래서, 나는이 작업을 위해 이러한 동사 - 명사 테이블을 구축했습니다 :
GET /news - Get all news
POST /news - Create news
GET /news/{id} - Show the news with id={id}
PUT /news/{id} - Edit the news with id={id}
GET /news/{type}/{page}/{per_page} - Get news page #{page} of type {type}
GET /news/{page} - Get news page #{page} of both types
그래서, 문제가 :
1) {페이지}과 {ID}을 구별하는 방법? 어쩌면 {id}는 숫자 일 수도 있지만 {page} - 'p'로 시작되는 문자열 (예 : 'p1')?
2) 사용자는 "per_page"값을 변경할 수 있습니다 페이지에. 너무 복잡하지 않습니까? /news/{type}/{page}/{per_page}
? 그것이 어떻게 단순화 될 수 있는가?
3)이 서비스에서 브라우저의 URL은 어떻게 보이게해야합니까? URL은 위의 표의 URI와 정확히 일치하지 않습니까? 예 :
/news - Viewing news (1st page with default 'per_page' and default 'type')
/news/{type} - Viewing news (1st page with default 'per_page' and type={type})
/news/{id} - Viewing exact news with id={id}
/news/{type}/{page}/{per_page} - Viewing exact page of news of exact type.
4) 추가 기능. 예를 들어 필터 검색 (날짜, 작성자 또는 제목 별 뉴스 가져 오기). 이것을 REST로 실현하는 방법은 무엇입니까? 필터 객체 (xml 또는 json)를 어떻게 전송해야합니까? 필터 결과가있는 페이지의 URL을 만드는 방법은 무엇입니까? /news/{date:12.12.2012,author:'admin'}
또는 더 나은 무엇입니까?
내 거친 영어로 죄송합니다. 문법 및 기타 실수가있는 경우 언제든지 수정하십시오.
미리 감사드립니다.
나는 REST에 너무 익숙하지 않지만 모든 뉴스를 표시하기 위해 'all'이라는 의사 유형의 뉴스를 소개하는 방법에 대해 - 마지막 URL (/ news/{page})은/news/모두/{page}? 이렇게하면 ID와 충돌하지 않습니다. {page}/{per_page}는 2/10 (2 페이지, 10 페이지) 대신 10-20 개가 될 수 있으므로 {start} - {end} 20)? 나에게 자의식이있는 것 같아. – Seramme
@ Seramme, 고마워. '/ news/all /'는 그러한 경우에 정말로 도움이됩니다. '{start} - {end}'는 소리가 좋지만 페이지를 계산하는 것이 클라이언트 측 작업이라는 의미입니다. –