개발일지/2023_한이음

[개발] Post Men 첫 사용 _ 여러가지 오류들

기억지기 개발자 2023. 5. 25. 17:50

🛤️현상 :
Could not send request
Cloud Agent Error: Can not send requests to localhost. Select a different agent.라는 오류가 포스트맨에서 발생했고

⭐원인 : 
포스트맨에서 localhost로 요청을 보내려고 할 때 발생하는 문제입니다. Cloud Agent는 localhost로의 요청을 지원하지 않기 때문에 해당 오류가 발생합니다.

🗝️해결 :
@CrossOrigin(origins = "http://localhost:3000", methods = {RequestMethod.OPTIONS, RequestMethod.DELETE, RequestMethod.GET, RequestMethod.POST, RequestMethod.PUT}) 이 코드를 controller에 넣어주면 된다. 
이후 이 현상들과 해결방안에 대해서 공부해봐야겠다.


🛤️현상 : 
문제는 get은 CRUD 중에 read에서만 사용이 가능하다는 것이다. 근데 사실 내가 이제까지 공부하면서 get,post,put,delete의 차이를 진지하게 고민한적이 없다는 것이다. 근데 내가 개발을 crud 모두 성공했으나 모두 get으로 해버렸고 read 빼고는 다 바꿔야하는 상황인데 http메소드의 body에 데이터를 담아서 보내는 것을 처음 해봤다.....
포스트 맨에서 put방식으로 설정하고 쿼리파라미터 형식(키&밸류)으로 데이터를 넘기려고 하니까

{
    "timestamp": "2023-05-23T08:26:31.642+00:00",
    "status": 415,
    "error": "Unsupported Media Type",
    "path": "/review/update/3"
}

이러한 오류가 발생하였다.

⭐원인 :

415 Unsupported Media Type 오류는 서버가 요청을 이해하지 못하는 미디어 타입으로 전송되었을 때 발생하는 오류입니다. 이 오류는 보통 요청 본문의 Content-Type 헤더와 서버가 지원하는 미디어 타입 간의 불일치로 인해 발생합니다.

🗝️해결 :
요청 본문에 JSON 데이터를 포함시키는 방법은 다음과 같습니다.
1. 포스트맨을 열고 PUT 요청을 만듭니다.
2. 엔드포인트 URL을 `http://localhost:8080/review/update/3`과 같이 설정합니다.
3. 요청 본문 탭으로 이동합니다.
4. 요청 본문 타입을 `raw`로 설정합니다.
5. 바로 아래에 있는 드롭다운 메뉴에서 `JSON (application/json)`을 선택합니다.
6. 본문 영역에 ReviewDTO 객체의 JSON 데이터를 입력합니다. 예를 들어:
```json
{
  "author": "hhhhhhhhh",
  "tags": "IT",
  "content": "hello",
  "trafficRate": 4,
  "facilityRate": 4,
  "cafeteriaRate": 4,
  "educationRate": 4,
  "employmentRate": 4,
  "schoolId": 1
}
```
7. 요청을 보냅니다.
이렇게 하면 요청 본문에 ReviewDTO 객체의 JSON 데이터가 포함되어 전송됩니다. 서버는 해당 데이터를 `ReviewDTO` 객체로 파싱하여 업데이트 작업을 수행할 수 있게 됩니다.
---->> 이 방식대로 포스트맨에서 수행했더니 바로 성공했다.....행복해 죽을 거 같다...