시작하기 앞서.
2-4 Postman에서 PUT Resquest의 example body 코드스니펫 오타 있음
Postman은 개발한 API를 테스트하고, 공유할 수 있는 API를 배달하는 배달부
API 요청(Request)들을 담아두는 '폴더'입니다.
-> 우리가 GET /items, POST /items, DELETE /items/1처럼 여러 개의 API 요청을 만들었습니다. 이 요청들은 모두 '찜 목록'이라는 하나의 기능에 관련되어 있죠.
컬렉션은 이 관련 있는 API 요청들을 '찜 목록 API'라는 이름의 폴더 하나에 묶어서 깔끔하게 정리하고 관리할 수 있게 해줍니다.
API 명세서에 따라 '미리 정해진 예시 응답'만 돌려주는 '가짜' 서버입니다.
-> 실제 백엔드 서버가 아직 개발 중이거나 완성되지 않았을 때, 프론트엔드 개발자가 API가 완성될 때까지 기다릴 필요 없이 개발을 계속할 수 있도록 도와준다.




GET, POST, PUT, DELETE 등 "어떻게" 행동할지를 나타내는 동사입니다.
{{baseURL}}/items처럼 "무엇을" 다룰지 알려주는 목적지 주소(명사)입니다.
Params (Query String), Headers, Body 등 요청을 수행하기 위해 "무엇을 가지고" 가야 하는지에 대한 상세 정보 입력할 수 있습니다.
해당 요청(Request)가 성공 또는 실패했을 때 서버의 응답을 미리 저장해 둔 샘플 응답이다. (= 메뉴판의 음식 사진)

!중요 : 실제 서버에서 받은 응답이 아니다.
Send 버튼을 눌렀을 때 돌아오는 응답은 실제 응답(Actual Response) 이다.
그러나
Example은 사전에 API 명세서(계약서)를 바탕으로 미리 저장해 둔 예상 응답(Sample Response) 이다.
API 문서화
백엔드 개발자가 프론트엔드 개발자에게 API 호출 성공과 실패 시 발생하는 결과값에 대해 알려줌
예) 성공 -> 200 OK | 실패 -> 404 Not Found
가짜 서버(Mock Server)의 예상 응답 = Mocking
가짜 서버 사용 시 Example로 그대로 응답 받음. 가짜 서버를 통해 실제 서버처럼 작동시키는 것

(어지간히 많은 API가 있거나 다양한 프로젝트 참여하는 것이 아니면 무료버전 ㄱㄱ)


??? 다운로드 안 해도 실행은 되나본데?

이따위로 떠서 무서운데...?









상단 Copy URL 복사

https:// 생성된 mock server id .mock.pstmn.io

Variable : baseURL | Value : 생성된 mock server 주소



실행(Send)

에러를 살펴보면 404 Not Found 그리고
"name": "mockRequestNotFoundError" 이라 한다.
mock server에서 이것에 해당하는 응답을 찾을 수 없단 뜻이다. 즉 mock request가 잘못된 것 같다.
-> 이건 해당 코드에 응답에 대한 코드가 없었기 때문임
그러면 만들어야겠지?

만든 Request의 ...을 선택하면 Add example가 있음. 이거 누르면

새로운 example이 생성된다. 여기에서 body 선택하고, raw -> JSON으로 변동한 뒤 하단에

mock server의 응답 코드를 작성하면 됨
상태 코드는 '201' Created임
이러고 Save(!강조) -> 다시 PORT 찜 목록 추가에서 Send 실행하면

이다.
404 Not Found -> 201 Created
에러코드 -> 사전에 입력한 응답 코드
찜 목록 API 컬렉션 옆의 + 버튼을 눌러 Add Request를 선택합니다.
요청의 이름을 전체 찜 상품 조회로 변경합니다.
HTTP Method를 GET로 선택합니다.
URL 입력창에 {{baseURL}}/items라고 입력합니다.
GET 요청은 Body가 필요 없으므로 Body 탭은 none으로 둡니다.
-> [조회는 body가 필요 없다.]
Save 버튼을 눌러 요청을 저장합니다. (꼭 잊지 않고 저장해주세요!!!)


그러면

추가로, 리스트를 조회하는 것이니까 example에 하나 더 추가해보자
(새우깡에 고래밥(id=2) 추가해봄)


잘 나온다.
(GET의 가짜응답은 전체 찜 상품 조회에서 200 OK : 조회 성공으로 바 꿈)
{{baseURL}}/items/임의의 ID : items 중 선택한 id를 골라서 선택하는 것(그러나...)
예) {{baseURL}}/items/2
1. 찜 목록 API 컬렉션 옆의 + 버튼을 눌러 Add Request를 선택합니다.
2. 요청의 이름을 찜 상품 단건 조회로 변경합니다.
3. HTTP Method를 GET로 선택합니다.
4. URL 입력창에 {{baseURL}}/items/임의의 ID 를 작성합니다.
5. Save 버튼을 눌러 요청을 저장합니다.


가짜 응답(Example)의 단건 조회는 임의의 ID를 입력하여도 Example에 작성된 내용으로만 반환된다.


(여기서도 빼먹었는데, 상태 코드 : 200 OK)

-> 요청과 가짜 응답의 id가 다르면 딴놈이 튀어나옴(전체 찜 상품 조회(id=1과 id=2 2개가 나옴)
HTTP Method를 PUT으로 설정. Resquest body에 값을 입력하고, Save

여기서 의문점 하나
Resquest는 id가 1인데, 달리 주어진 자료에서는 id가 3임. 이러면 요청값과 응답값의 id가 다르잖아. 애초에 3으로 선택한 것도 없고

2-2. 질문 하나
-> 첨부된 자료와 달리 example body의 id가
"id": {{$randomInt}} 가 아니라
"id": {{$pathSegments '1'}} 임
-> 일단 "id": {{$randomInt}}와 "id": {{$randomInt '1'}} 을 각각 해보자.
3-1. example body가 "id": {{$randomInt}} 으로 Save.
Resquest에서 Send를 실행할 경우
id가 무작위 수로 출력됨

3-2. example body가 "id": {{$pathSegments '1'}} 으로 Save.
Resquest에서 Send를 실행할 경우

이게 맞네.
가짜 응답 값의 "id": {{$pathSegments '1'}}는 요청한 id 값을 출력하는 건가? 그렇다면 조회(GET)에서 소개한 것과 달리 요청값과 가짜 응답 값의 id가 다른데 왜 적용 되는건지?
요청값의 id가 1인데, 가짜 응답의 id가 3이면 안되야하는거잖아

3. body는 none
4. Resquest 실행 : 텅 빔




mock server -> Copy URL으로 복사한 뒤
찜 목록 API Copy -> Variables -> Value에 붙여넣기
가짜 응답(example)에 저장된 값을 물어보면 실제 id값과는 무관해도 Resquest에는 가짜 응답의 값이 출력되는 것으로 알고 있다. 그런데, 실제로 해당 id가 없는 경우 찜 목록 조회의 값이 내려온다.(id=1과 id=2 두 개가 있는 것)
예:
1. 단건 조회의 가짜 응답 id는 1일 때, resquest와 example은 id=2 -> 가짜 응답이 출력된다. 이는 가짜 응답의 id 값과는 상관 없이 입력한(id=2) 값에 따른 출력값(id=2)이므로 그렇다.
2. 단건 조회의 가짜 응답 id는 1일 때, resquest와 example가 서로 다른 id(example가 2인데, resquest가 1이나 3 등)이면 이전 설정한 값이 나온다? 에러가 아니라?


둘의 URL이 달라지니 단건 조회의 가짜 응답이 아니라 딴놈(전체 찜 조회의 가짜 응답)이 튀어나옴
예제 자료를 통해 작성해보니
1. PUT에서 Resquest body에 값을 입력하고, Save


3-1. example body가 "id": {{$randomInt}} 으로 Save.
Resquest에서 Send를 실행할 경우
id가 무작위 수로 출력됨

3-2. example body가 "id": {{$pathSegments '1'}}} 으로 Save.
Resquest에서 Send를 실행할 경우

이게 맞네.
그런데, 또 추가 질문
요청

가짜응답
