2017-12-13 26 views
0

REST (특히 모범 사례 사용)에서 단수 이름을 사용하는 것이 올바른 것으로 간주되는시기가 궁금했으나 두 엔터티간에 일대일 매핑이있는 경우 더욱 그렇습니다.일대일 매핑이 있고 REST URI를 디자인하는 방법이 있다면 단수 이름을 사용하는 것이 맞습니까?

첫 번째 예를 들어, 고객에 대한 충성도를 관리해야합니다. 고객은 /me으로 자신의 프로필에 액세스 할 수 있습니다. 또한, 그는 특정 상태의 잠금을 해제하기 위해 충성도 포인트, 할인, 다음 임계 값에 대한 여러 정보를 표시하는 충성도 계정을 보유하고 있습니다. 당신은 같은 경로를 설계하는 것입니다 :

  • /me/fidelity_account,
  • /me/fidelity_accounts/mine - 내가 좋아하는,
  • /me/my_fidelity_account,
  • /me/my_fidelity_accounts/mine
  • /me/fidelity_accounts/{id}
  • , 잘못된 ID를 제공하는 403, 를 제공한다고 가정
  • 또는 다른 방법으로 디자인 할 수 있습니까?

두 번째 예에서 우리는 고객을위한 쇼핑 목록을 관리해야합니다. 고객은 여러 개의 목록을 가질 수 있지만 적어도 항상 "인터넷 쇼핑 목록"이라는 목록이 있어야합니다. 이 목록은 자체 ID가있는 다른 목록 중에서도 고유합니다. 인터넷 쇼핑 목록에는 전혀 다른 스키마가 있습니다.

  1. 만들기 완전히 다른 같은 /me/shopping_lists/{id} 같은 경로하지만 /me/internet_shopping_list (단수) 특정 목록 :

    우리는이 사용 사례에 대한 몇 가지 아이디어가 있습니다. 내 최선의 방법이야.

  2. /me/shopping_lists/{id}과 같은 경로를 만들고 특정 목록에 대해서는 /me/shopping_lists/internet_shopping_list과 같은 경로를 만듭니다.
  3. 아니면 다른 방법일까요?

답변

0

저는이 질문에 대해 계속 생각해 보았습니다. 몇 가지 대답이 다른 것보다 낫다고 나왔습니다. 사용자가 자신을 식별하는 토큰을 제공했다고 가정하면 - /me/fidelity_accounts/mine - mine 여기에 ID의 별칭이됩니다. - /me/fidelity_accounts/{id} - 따라서 계정의 ID가 사용자가 부여한 토큰과 관련이있는 경우에만 {id}이 작동해야합니다. - /me/fidelity_account - 안심할 수는 없지만 가장 간단한 방법입니다.