나는 (RavenDB에서 유래)ServiceStack 라우팅
public string ID {get;set;}
activities/1
의 ID로 엔티티를했습니다.
내가 POST에 백본 응용 프로그램을 사용하여 내 REST 서비스에 처하고있어 내 ServiceStack AppHost
Routes
.Add<Activity>("/activities")
.Add<Activity("/activities/{id}");
에 다음과 같은 경로를 등록하고있다.
- ID 속성은 "활동/1"
- ID 속성은 "활동 %의 2F1"와 같은 경로로 인코딩으로 JSON으로 직렬화 : 밖 박스 어떻게됩니까
- ServiceStack은 URL 기반 id 속성에 우선 순위를 부여하므로 내 문자열은 RavenDb에 직접 사용되지 않는 인코딩 된 값을 가져옵니다. 을 슬래시보다는 하이픈을 사용하는
- 변경 RavenDb ID 생성에 JSON 시리얼 라이저 킥에 "/ 활동"을 게시 할 수
- 변경 백본 :
옵션은 내가 알고 있어요
- 는 세트 인코딩 %의 2 층 내 Id 속성의 구문 분석을 확인하고
모두가 I RESTfuln을 잃게 하나의 단점이 슬래시로 변환 내 API에있는, 바람직하지 않은, 또는 일반적으로 현명한 여우입니다 RavenDb 규칙을 따르지 않습니다. 또한, 나는 개인적으로 슬래시를 선호하는 경향이있다.
이렇게 나는 타협을 포함하여이 문제점을 분류하는 데 사용할 수있는 서비스 옵션에 다른 옵션이 있는지 궁금합니다. Serialiser 사용자 지정이나 와일드 카드 라우팅 중 하나가 내 머리 속에 있습니다. ...
감사합니다. 그래서 GET :/api/users에서 Integer ID를 돌려 주겠습니까? – Chris
아니, 결과 집합을 조작하기에는 너무 서투른 ㄴ다는 것을 알았 기 때문에 전체 문자열 ID를 반환합니다. 클라이언트 응용 프로그램은 전체 문자열 ID를 유지하지만 ID가있는 URL을 작성할 때 id.split ("/") [1]과 같은 것을 사용하여 전면 부분을 제거합니다. –