안녕하세요. 솔그누입니다.
이제 사용할 오픈소스는 결정이 끝났습니다. 테스트코드를 만들어 돌려보니 잘 동작합니다.
본격적으로 api 를 만들기 전에 결정해야 할것이 남았습니다.
1. api endpoint
==> 이미 여러분께서 정리해두신게 있습니다. 참조하겠습니다.
==> 네이밍을 잘 할려고 하면, 머리가 아픕니다. 적당하게 만듭니다.(네이밍 보다는 문서화가 중요합니다.)
1-1. HTTP Method 를 정해야 합니다.
==> GET/POST 이외에 PATCH/DELETE 도 활용하는게 좋겠지만, 웹서버에서 지원안하는 경우가 많습니다.
그냥 GET / POST만 사용하고, api endpoint에 create/update/delete 를 명시합니다.
POST /member/{mb_id}/update
POST /member/{mb_id}/delete
2. request / response data
==> 응답은 JSON 입니다. 다른걸 쓸필요가 없습니다. 고민하지 말고 그냥 JSON 입니다.
요청은 form-urlencoded 또는 JSON 형태입니다. 이미지 업로드시에는 multipart 도 사용되게 됩니다.
저는 form-urlencoded 를 선호합니다. 터미널에서 직접 테스트하는 경우가 많은데(curl, httpie) 중괄호와 쌍따옴표 타이핑이 은근히 귀찮습니다.
3. 요청 데이타는 form-urlencoded 로 결정했다면, 이제 응답 JSON 데이타를 정해야 합니다.
==> 사용자에 따라 각자의 형태가 됩니다. 가급적 심플한 구조가 문서화 하기에 편리합니다.(설계보다 문서화가 중요합니다.)
3-1. http status 값을 어떤식으로 노출할지 정해야 합니다.
==> restful 문서 가이드를 보면 상태값을 주로 http status 값을 사용합니다.
200 (OK), 404(Not Found), 400(Bad Request), 403, 500, etc...
저는 이걸 응답 메세지에 코드화 시키는걸 선호합니다.
api의http status 는 모두 200 으로 통일합니다. (진짜 서버 오류 나는 경우도 있으니..)
4. 그래서 나온 최종 응답 데이타 구조입니다.
{
"status" : 200,
"message" => "OK",
"data" => {...}
}
- 응답이 정상이면 200 이고, message는 대부분 OK 입니다.
- message 는 200인 경우 OK, 그외 상태인 경우 오류 메세지가 들어갑니다.
- data 는 여러가지 형태의 응답 데이타를 포함하고 있습니다. body라는 명칭도 많이 쓰는데,
http response body 랑 헷갈리는것 같아서 저는 data라는 변수를 씁니다.
- 게시판 목록에 대한 응답이라면, data 는 대략 이렇게 구성됩니다.
{
"status" : 200,
"message" => "OK",
"data" => {
"total" => 1020,
"page" => 3,
"filter" => {
"stx" => "...",
"sfl" => "....",
},
"order" => {
"sst" => "wr_id",
"ssd" => "desc",
}
"rows" => [
{
"bo_table" => "free",
"wr_id" => 1,
"wr_subject" => "xxxxxxx",
.....
}
......
]
}
}
댓글 7개
게시글 목록
| 번호 | 제목 |
|---|---|
| 262 | |
| 259 | |
| 255 | |
| 250 | |
| 248 | |
| 245 | |
| 238 | |
| 234 | |
| 233 | |
| 232 | |
| 229 | |
| 228 | |
| 227 | |
| 222 | |
| 217 | |
| 216 | |
| 215 | |
| 212 | |
| 210 | |
| 208 | |
| 203 | |
| 195 | |
| 192 | |
| 188 | |
| 184 | |
| 180 | |
| 177 | |
| 173 | |
| 170 | |
| 165 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기