programing

REST API - "Accept: application/json" HTTP 헤더 사용

css3 2023. 3. 11. 09:20

REST API - "Accept: application/json" HTTP 헤더 사용

요청을 하면 XML로 응답이 오는데 필요한 것은 JSON입니다.문서에는 JSON을 취득하기 위해 다음과 같이 기재되어 있습니다.를 사용합니다.Accept: application/jsonHTTP 헤더

저장할 HTTP 헤더를 찾을 수 있는 위치Accept: application/json안에?

다음과 같은 URL 요구에는 포함되지 않는 것으로 생각됩니다.

http://localhost:8080/otp/routers/default/plan?fromPlace=52.5895,13.2836&toPlace=52.5461,13.3588&date=2017/04/04&time=12:00:00

HTTP 헤더는 URL의 일부가 아닙니다.

그리고 브라우저에서 URL을 입력하면 요청은 표준 헤더와 함께 발행됩니다.어쨌든 REST Apis는 브라우저의 주소창에 엔드포인트를 입력하여 소비하는 것이 아닙니다.

가장 일반적인 시나리오는 서버가 서드파티제의 REST API를 사용하는 경우입니다.

이를 위해 서버 측 코드는 특정 엔드포인트(URL) 설정을 가리키는 적절한 GET(/PUT/POST/DELETE) 요구를 포스팅하고 있습니다(필요한 경우 등), 마지막으로 (일반적으로 POST 요청에서 발생하는) 일부 데이터를 전송합니다.

요청을 위조하여 전송하고 최종적으로 응답을 반환하는 코드는 서버 측 언어에 따라 달라집니다.

REST API를 테스트하려면 명령줄에서 도구를 사용할 수 있습니다.

curl는 요구를 발행하여 stdout에 응답을 출력합니다(특별히 지시가 없는 한).

귀하의 경우 테스트 요청은 다음과 같이 발행됩니다.

$curl -H "Accept: application/json" 'http://localhost:8080/otp/routers/default/plan?fromPlace=52.5895,13.2836&toPlace=52.5461,13.3588&date=2017/04/04&time=12:00:00'

H또는--headerdirective는 헤더와 그 값을 설정합니다.

여기 당신의 헤더를 테스트하기 위한 편리한 사이트가 있습니다.브라우저 헤더를 표시하고 cURL을 사용하여 보낸 헤더를 반영할 수 있습니다.

예를 들어, 이와 같이 컨텐츠의 네고시에이션을 검증할 수 있습니다.

이것.Acceptheader는 플레인텍스트를 선호하기 때문에 다음과 같은 형식으로 반환됩니다.-

$ curl -H "Accept: application/json;q=0.9,text/plain" http://gethttp.info/Accept
application/json;q=0.9,text/plain

한편, 이것은 JSON을 선호하기 때문에, 그 포맷으로 돌아옵니다.

$ curl -H "Accept: application/json,text/*;q=0.99" http://gethttp.info/Accept
{
   "Accept": "application/json,text/*;q=0.99"
}

기본적으로 API 테스트에는 Fiddler나 Postman을 사용합니다.

fiddler에서는 요청 헤더에서 xml 대신 html을 지정해야 합니다.json으로 변경해야 합니다.예:Accept: application/json그걸로 충분할 거야

json 표현에는 Curl이 더 나은 옵션일 수 있지만, 이 경우 json의 구조는 명령줄에 있기 때문에 이해하기 어려울 수 있습니다.브라우저에서 json을 가져오려면 다음과 같은 모든 XML 주석을 삭제하기만 하면 됩니다.

@XmlRootElement(name="person")
@XmlAccessorType(XmlAccessType.NONE)
@XmlAttribute
@XmlElement

xml 표현에 사용한 동일한 URL보다 xml 표현에 사용되었습니다.

pom.xml에 jacson-databind 의존관계가 있는지 확인합니다.

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.4.1</version>
</dependency>

언급URL : https://stackoverflow.com/questions/43209924/rest-api-use-the-accept-application-json-http-header