API Design Process
API Design μ νκΈ° μν΄μλ λ³΄ν΅ λ€μμ λ¨κ³λ₯Ό λ°λ₯Έλ€.
- Review API requirements
- Identify main resource / entity
- Use HTTP methods to assigin action on resource
Step 1: Review API Requirements
boss λ‘λΆν° λ€μ API requirements λ₯Ό μꡬλ°μλ€κ³ κ°μ ν΄λ³΄μ.
Create a RET API for the Employee Directory
REST clients should be able to
- get a list of employees
- get a single employee by id
- add a new employee
- update an employee
- delete an employee
Step 2: Identify main resource / entity
κ·Έλ¦¬κ³ Service μ λ°μ κ±Έμ³μ μ¬μ©λλ main resource / entity μ name μ μ ν΄μΌ νλ€. μμ requirements μ κ²½μ° employee λΌλ noun μ΄ κ°μ₯ μ€μν keyword κ° λλ€.
convention μ λ³΄ν΅ resource / entity μ plural, μ¦ λ³΅μν ννλ₯Ό μ¬μ©νλ€. μ¬κΈ°μλ employees κ° λ κ²μ΄λ€. μ€μ λ‘λ /api/employees μ κ°μ΄ endpoint λ‘ μ¬μ©νλ€.
Step 3: Use HTTP methods to assigin action on resource
POST, GET, PUT, DELETE method λ₯Ό μ¬μ©νμ¬ resource μ μ΄λ ν λμμ μννλλ‘ λ§λ λ€.
| HTTP Method | Endpoint | CRUD Action |
|---|---|---|
POST | /api/employees | Create a new employee |
GET | /api/employees | Read a list of employees |
GET | /api/employees/{employeeId} | Read a single employee |
PUT | /api/employees | Update an existing employee |
DELETE | /api/employees/{employeeId} | Delete an existing employee |
| μμ κ°μ΄ λμΌν endpoint λ₯Ό μ¬μ©νκ³ HTTP method λ₯Ό μ΄μ©νμ¬ λ€λ₯Έ λμμ μννλλ‘ νλ κ²μ΄ μ’λ€. |
/api/employeesList, /api/addEmployee μ κ°μ΄ μ΄λ ν action μ μννλμ§λ₯Ό endpoint name μΌλ‘ μ νλ κ²μ anti-pattern μΌλ‘ λΆλ₯λμ΄ μ§μν΄μΌ νλ€.
Paypal, GitHub λ± μ€μ Real-Time Service μμ μ¬μ©λλ REST API λ λͺ¨λ λμΌν endpoint μ λνμ¬ λ€λ₯Έ HTTP method λ₯Ό μ¬μ©ν¨μΌλ‘μ¨ λ€λ₯Έ λμμ μννλλ‘ design νμλ€.