NAVER WORKS API 2.0

NAVER WORKS API 2.0

NAVER WORKS Developers

규칙

  1. 명사 사용

    1. 문서(Document)

      • 단일 개념(파일 하나, 객체 인스턴스, 데이터베이스 row)
      • 단수 사용 (/device-management, /user-management)
      <http://api.example.com/**device-management**/managed-devices/{device-id}>
      <http://api.example.com/**user-management**/users/{id}>
      <http://api.example.com/**user-management**/users/admin>
      
    2. 컬렉션(Collection)

      • 서버가 관리하는 리소스 디렉터리
      • 서버가 리소스의 URI를 생성하고 관리복수를 사용하라
      • POST 기반 등록
      • 예) 회원 관리 API복수 사용 (/users)
      <http://api.example.com/user-management/**users**>  
      <http://api.example.com/user-management/**users**/{id}>
      
    3. 스토어(Store)

      • 클라이언트가 관리하는 자원 저장소
      • 클라이언트가 리소스의 URI를 알고 관리
      • PUT 기반 등록
      • 예) 정적 컨텐츠 관리, 원격 파일 관리복수 사용 (/files)
      <http://api.example.com/song-management/users/{id}/**playlists**>
      
    4. 컨트롤 URI 혹은 컨트롤러(Controller)

      • 문서, 컬렉션, 스토어로 해결하기 어려운 추가 프로세스 실행
      • 동사를 직접 사용
      • 예) GET, POST만 사용할 수 있는 HTTP FORM의 경우 컨트롤 URI(동사로 된 리소스 경로)를 사용
      • ex) /members/delete, /members/new 등 동사 사용 (/checkout, /play 등)
      <http://api.example.com/cart-management/users/{id}/cart/**checkout**>  
      <http://api.example.com/song-management/users/{id}/playlist/**play**>
      
    5. 계층 관계 표현을 위해 / 사용

    6. 마지막 문자로 / 사용 X

    7. 가독성을 위해 -(하이픈) 사용

    8. _(언더스코어)는 사용 X

    9. 소문자 사용

    10. 파일 확장자 사용 X

    11. CRUD 함수명 사용 X

      • 리소스에 대한 작업은 HTTP Method 이용
      HTTP GET <http://api.example.com/device-management/managed-devices>  //Get all devices
      HTTP POST <http://api.example.com/device-management/managed-devices>  //Create new Device 
      
      HTTP GET <http://api.example.com/device-management/managed-devices/{id}>  //Get device for given Id
      HTTP PUT <http://api.example.com/device-management/managed-devices/{id}>  //Update device for given Id
      HTTP DELETE <http://api.example.com/device-management/managed-devices/{id}>  //Delete device for given Id
      
    12. 필터를 위해 쿼리 파라미터 사용

      <http://api.example.com/device-management/managed-devices>
      <http://api.example.com/device-management/managed-devices?region=USA>
      <http://api.example.com/device-management/managed-devices?region=USA&brand=XYZ>
      <http://api.example.com/device-management/managed-devices?region=USA&brand=XYZ&sort=installation-date>
      

    출처: https://prohannah.tistory.com/156, https://medium.com/tech-pentasecurity/restful-api-네이밍-7c81bdb9da63