Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactoring: restful한 API 설계 #26

Open
Lee-JongSoo opened this issue Jul 28, 2022 · 0 comments
Open

Refactoring: restful한 API 설계 #26

Lee-JongSoo opened this issue Jul 28, 2022 · 0 comments
Assignees

Comments

@Lee-JongSoo
Copy link
Member

현재 저희 api는 level1 수준입니다. 좀 더 restful한 api 설계를 위해 level2로 리펙토링 방향성을 제시합니다.

스크린샷 2022-07-28 오후 5 47 15

우선 level1에 맞지 않는 url 형태가 있습니다.

1. Path Variable에는 카멜케이스(camelCase)를 사용하자
Bad:

[GET] /orders/{order_id} 
[GET] /orders/{OrderId}

Good:
[GET] /orders/{orderId}

2. Collection에는 단수가 아닌 복수를 사용하자
Bad:

[GET] /user
[GET] /User

Good:
[GET] /users

3. Collection으로 시작해서 Identifier로 끝나자.
Bad:
[GET] /shops/{shopId}/products/{productId}/price
리소스 대신에 price라는 속성을 가리키기 때문에 좋지 않습니다.

Good:

[GET] /shops/{shopId}
[GET] /products/{productId}

이제 level2를 위한 리펙토링 방향성을 제시합니다.
HTTP method인 GET, POST, PUT, DELETE를 사용해 CRUD를 나타내고 메시지에 Status Code도 담겨 반환합니다.

Request

POST https://users
{
  "name": "nhn-commerce"
}

Response

HTTP/1.1 201 Created
Content-Type: application/json
{
  "result" {
    "id": "1",
    "name": "nhn-commerce"
  }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant