-
Rest API 설계개발/백엔드 2020. 6. 5. 09:58
1. DB 설계부터 제대로 (테이블 분리)
데이터 중복을 피한다. (1:1, 1:다, 다:다로 설계)
DB 정규화 (1, 2, 3, BCNF ...)
created_at, updated_at 포함
2. Rest API 스펙을 지키자 (URI, Method, Status Code)
URI 에 동사를 작성하지 않는다.
DB 관계가 복잡해지면 URL이 복잡해진다.
예) GET /api/user/{id}/task Get the list of all the task assigned to this user
Method : get, post, put, patch, delete
put과 patch의 차이는 put은 모든 정보를 보내고, patch는 일부 정보만 보낸다.
상태코드 파악 (200, 201, 400, 404, 500 ...)
200대는 성공 / 400대는 요청 실패 / 500대는 서버에러
3. Stateless
서버는 state를 가지고 있지 않아도 되기 때문에 서버가 스케일 아웃되는 경우에 유용
인증 토큰을 가지고 있음
안드로이드, iOS, 웹 (Vue, React) 등 프런트엔드와 백엔드의 명백한 분리가 가능해졌음
[출처] https://dev.to/khalyomede/design-an-easy-to-use-and-flexible-rest-endpoints-3fia
Rest API 외에도 GraphQL도 공부가 필요.
GraphQL
특징 : 필요한 요청 만 응답 값으로 불러온다.
장점 : 서버의 부하를 줄여준다.
문법 : mutation 수정, 삭제
'개발 > 백엔드' 카테고리의 다른 글
nodejs api 인증 예제 ( JWT, sequelize, express ) (1) 2021.03.29 nodejs api 예제 : express (0) 2021.03.27