디자인에 대한 조언이 필요합니다.

nofomopls

내 API에 편안한 디자인에 대해 혼란 스럽습니다.

최종 사용자와 백엔드 (관리자)의 두 가지 역할이 있습니다. 백엔드 역할을 사용하면 사용자의 모든 리소스에 액세스 할 수 있습니다.

사용자는 많은 주문을 가질 수 있습니다.

그래서 사용자 리소스에 기반을 정의했습니다.

GET /users/{userID} -- get User Information
GET /users/{userID}/orders -- list user order list
POST /users/{userID}/orders -- user make an order

하지만 어 .. 일부 온라인 문서를 참조한 후 인증 단계 이후에 암시 적 사용자 ID가 식별되므로 다음은 주문 리소스 를 사용하여 다른 디자인입니다 .

GET /orders/ --list user order list by user account(backend can get all)
GET /orders/{orderID}  --get orderID by userID
POST /orders/ -- user make an order.

백엔드 사용자가 사용자별로 주문을 나열하려는 경우이 정의를 사용합니다. 어떤 방법을 사용해야합니까?

GET /orders?user={userID} (user as query parameter) -- List order with userID

또는

GET /users/{userID}/orders

Pls는 어떤 디자인 ( 사용자 또는 주문 리소스)이 더 나은지 조언 하고 그 이유는 무엇입니까? Tks,

Benson

더 나은 디자인은 사용 사례에 따라 다릅니다.

예를 들어 두 명의 사용자가 있다고 가정합니다.

  1. 앨리스 ( userID=1)
  2. 밥 ( userID=2)

또한 Alice가 이미 인증되어 백엔드가 userID=1어딘가에서 사용 가능 하다고 가정 해 봅시다 .

  1. Alice가 자신의 주문을 나열하려는 경우 가장 짧은 방법은

    GET /orders
    

    그리고 백엔드 사용자에게 userID.

  2. 요청이 인증 된 사용자의 주문을 검색한다고 가정 해 보겠습니다. Alice가 시도하면 어떻게 /users/2/orders됩니까? Bob의 명령을 볼 수 있습니까? Alice가 많이 잘못 입력하고 쿼리를 발행하면 /users/2/어떻게됩니까?

  3. 마지막으로 고려해야 할 사항-향후 검색 할 속성이 더 있으면 어떻게합니까? 어떤 경우 userID미래에서 주문에서 제거 (> 주문 - -> 장바구니의 사용자와 같은 미래의 새로운 관계가있다 가정 해 봅시다)? 업데이트하기 쉬운 URI 체계는 무엇입니까?

따라서 간단한 대답은 없으며 사용 사례에 따라 다릅니다. 주문 만 검색하는 경우 {GET|POST} /orders유연성과 단순성을 최대한 활용하는 것이 좋습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Parse에서 IAP 용 클래스 디자인에 대한 조언이 필요합니다.

분류에서Dev

discord.py 봇에 대한 조언이 필요합니다.

분류에서Dev

'Foreach 루프'작업에 대한 조언이 필요합니다.

분류에서Dev

'Foreach 루프'작업에 대한 조언이 필요합니다.

분류에서Dev

iptables 규칙에 대한 조언이 필요합니다

분류에서Dev

SSRS 보고서에 대한 조언이 필요합니다.

분류에서Dev

정적 및 미디어 파일에 대한 조언이 필요합니다.

분류에서Dev

기본적인 Java WebApplication / Servlet에 대한 조언이 필요합니다.

분류에서Dev

더 많은 수정 자 키 매핑에 대한 조언이 필요합니다

분류에서Dev

mysql 데이터베이스 설계에 대한 조언이 필요합니다.

분류에서Dev

Windows 서비스 및 CDO에 대한 조언이 필요합니다.

분류에서Dev

부트 스트랩 div 숨기기에 대한 조언이 필요합니다.

분류에서Dev

phpBB의 onclick BBCode Spoiler-Tag에 대한 조언이 필요합니다.

분류에서Dev

PHP로 포럼을 만드는 것에 대한 조언이 필요합니다

분류에서Dev

Qt Painting에 대한 성능 개선 조언이 필요합니다.

분류에서Dev

MySQL 데이터 표시에 대한 php / html에 대한 조언이 필요합니다.

분류에서Dev

포인터를 사용한 C ++ 배열 추가에 대한 조언이 필요합니다.

분류에서Dev

이 쿼리는 아무것도 반환하지 않습니다. 이에 대한 조언이 필요합니다.

분류에서Dev

laravel js 및 css 스토리지 디렉토리에 대한 조언이 필요합니다.

분류에서Dev

React-상태 데이터 구조를 설계하는 방법에 대한 조언이 필요합니다.

분류에서Dev

가상화 소프트웨어 및 적합한 Linux 배포판에 대한 조언이 필요합니다.

분류에서Dev

쉽고 완전한 PHP 시스템에 대해 많이 검색 한 후 조언이 필요합니다.

분류에서Dev

'오류, 예상 표현식 int'및 내 C 앱 구조화에 대한 조언이 필요합니다.

분류에서Dev

Ionic 및 Angular를 처음 사용하며 외부 json 요청에 대한 조언이 필요합니다.

분류에서Dev

참조 유형에 대한 설명이 필요합니다.

분류에서Dev

초보자를위한 연결 목록 기본 조언이 필요합니다.

분류에서Dev

전화 기반 검색 엔진을 만드는 데 대한 기본적인 조언이 필요합니다.

분류에서Dev

Angular 2 : 디자인 모델 창 마법사 생성 방법에 대한 도움이 필요합니다.

분류에서Dev

Angular를 사용하여 PHP에 올바르게 POST하는 방법에 대한 조언이 필요합니다.

Related 관련 기사

  1. 1

    Parse에서 IAP 용 클래스 디자인에 대한 조언이 필요합니다.

  2. 2

    discord.py 봇에 대한 조언이 필요합니다.

  3. 3

    'Foreach 루프'작업에 대한 조언이 필요합니다.

  4. 4

    'Foreach 루프'작업에 대한 조언이 필요합니다.

  5. 5

    iptables 규칙에 대한 조언이 필요합니다

  6. 6

    SSRS 보고서에 대한 조언이 필요합니다.

  7. 7

    정적 및 미디어 파일에 대한 조언이 필요합니다.

  8. 8

    기본적인 Java WebApplication / Servlet에 대한 조언이 필요합니다.

  9. 9

    더 많은 수정 자 키 매핑에 대한 조언이 필요합니다

  10. 10

    mysql 데이터베이스 설계에 대한 조언이 필요합니다.

  11. 11

    Windows 서비스 및 CDO에 대한 조언이 필요합니다.

  12. 12

    부트 스트랩 div 숨기기에 대한 조언이 필요합니다.

  13. 13

    phpBB의 onclick BBCode Spoiler-Tag에 대한 조언이 필요합니다.

  14. 14

    PHP로 포럼을 만드는 것에 대한 조언이 필요합니다

  15. 15

    Qt Painting에 대한 성능 개선 조언이 필요합니다.

  16. 16

    MySQL 데이터 표시에 대한 php / html에 대한 조언이 필요합니다.

  17. 17

    포인터를 사용한 C ++ 배열 추가에 대한 조언이 필요합니다.

  18. 18

    이 쿼리는 아무것도 반환하지 않습니다. 이에 대한 조언이 필요합니다.

  19. 19

    laravel js 및 css 스토리지 디렉토리에 대한 조언이 필요합니다.

  20. 20

    React-상태 데이터 구조를 설계하는 방법에 대한 조언이 필요합니다.

  21. 21

    가상화 소프트웨어 및 적합한 Linux 배포판에 대한 조언이 필요합니다.

  22. 22

    쉽고 완전한 PHP 시스템에 대해 많이 검색 한 후 조언이 필요합니다.

  23. 23

    '오류, 예상 표현식 int'및 내 C 앱 구조화에 대한 조언이 필요합니다.

  24. 24

    Ionic 및 Angular를 처음 사용하며 외부 json 요청에 대한 조언이 필요합니다.

  25. 25

    참조 유형에 대한 설명이 필요합니다.

  26. 26

    초보자를위한 연결 목록 기본 조언이 필요합니다.

  27. 27

    전화 기반 검색 엔진을 만드는 데 대한 기본적인 조언이 필요합니다.

  28. 28

    Angular 2 : 디자인 모델 창 마법사 생성 방법에 대한 도움이 필요합니다.

  29. 29

    Angular를 사용하여 PHP에 올바르게 POST하는 방법에 대한 조언이 필요합니다.

뜨겁다태그

보관