개발자

클라이언트(프론트)에서 api return 처리를 어떻게 하시나요?

2024년 03월 13일조회 264

안녕하세요 클라이언트(프론트)단에서 axios 사용해 REST api return 스펙정리를 해서 서버단과 이야기해 수정을 하려고 합니다. 고려사항 등 도움을 주시면 감사하겠습니다. Method - GET : 정보조회시 - POST : 저장시(회원, 주문, 아이템 등) - PUT : 수정시 - DELETE : 삭제시 현 구현 - HTTP status 200은 성공, 그 외 에러처리 => 서버단에서 보내주는 msg 혹은 프론트에서 하드코딩으로 문자열 출력(alert) 문제점 1) 성공과 실패 및 실패 사유에 대한 return 구조체가 생각 이상으로 깊은 구조이며 일관성이 없음. ex1) response.data = { 객체 정보 } ex2) response.data = "Success"; -- 여기부터 문제 -- ex3) response.data.detail = "Faile"; ex4) response.data.detail[0].msg = "Faile"; // 기타 다른정보들 포함됨 ex5) response.data.messages "문자열" 2) 몇개의 api는 return 값으로 status가 200으로 string 혹은 object가 날라옴. 3) 사용자 정보제공(문자열) 하드코딩 다국어 설정도 고려하고 있기에.. 실패시 정보를 연상코드로 리턴받을까합니다.(개인 생각) 작성하고 보니 어떻게 문제점은 보이는데 좋은 개선점이 있으시면 의견주시면 감사하겠습니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 1

인기 답변

박정환님의 프로필 사진

REST API의 repsonse 정의를 질문하셨습니다. 간단하게 해봅시다. 이 패턴들에 detail이 더 추가되거나, message를 constant code화 시키셔도 됩니다. (자유) 1. http status 200 (성공) GET (성공일시 list나 단일 객체를 반환합니다.) response.data : { "result" : "success", message : "success", code:"200", data: {list : [ ... ]} } response.data : { "result" : "success", message : "success", code:"200", data : {object : { ... }} } DELETE (성공일시 성공 메세지만 반환합니다.) response.data : { "result" : "success", message : "success", code:"200" } PUT, PATCH (성공일시 트랜잭션이 일어난 객체 정보를 반환합니다. (이부분은 논의해서 정리하면 됩니다.)) response.data : { "result" : "success", message : "success", code:"200", data : {detail : "{전달한 객체}"} } 여기부터는 http status에 따른 결과입니다. 회선 불안정이나 서버 이슈등으로 발생할 수 있습니다. 2. http status 404 (api미존재) response.data : { "result" : "fail", "message" : "not found", code:"404", detail : "" } 3. http status 400 (bad request) response.data : { "result" : "fail", "message" : "bad request", code:"400", detail : "" } 4. http status 500 (internal server error) response.data : { "result" : "fail", "message" : "intenal server error", code:"500", detail : "" }

노원재님의 프로필 사진

노원재

작성자

Web Developer2024년 03월 26일

감사합니다-! 도움이 됬습니다!

박정환님의 프로필 사진

박정환

HecatonAI Lab Leader2024년 03월 26일

도움이 되어서 다행입니다. 간단하게 해본거라 엉성할 수 있고, 질문자님 회사 내부 규칙에 맞지 않을 수 있습니다. 참고만 하시고 내부 협의를 통해 서로간에 잘 맞추어 사용하셨으면 좋겠습니다.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!