REST API - "Accept: application/json" HTTP Başlığını kullanın

Bir istekte bulunduğumda XML olarak bir yanıt alıyorum, ancak ihtiyacım olan şey JSON. Dokümanda karşılığında bir JSON almak için belirtilmiştir: Accept: application/json` HTTP Başlığını kullanın.

İçine Accept: application/json koyacağım HTTP Başlığını nerede bulabilirim?

Tahminimce, URL isteğinin içinde olması gerekmiyor, ki bu gibi görünüyor:

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
Çözüm

Doğru tahmin ettiniz, HTTP Üstbilgileri URL'nin bir parçası değildir.

Ve tarayıcıya bir URL yazdığınızda, istek standart başlıklarla verilecektir. Her neyse, REST Api'ler bir tarayıcının adres çubuğuna uç noktayı yazarak tüketilmek üzere tasarlanmamıştır.

En yaygın senaryo, sunucunuzun üçüncü taraf bir REST Api kullanmasıdır.

Bunu yapmak için sunucu tarafı kodunuz, belirli bir uç noktayı (URL) işaret eden uygun bir GET (/PUT/POST/DELETE) isteği oluşturur (sizin durumunuzda olduğu gibi gerektiğinde) bazı başlıkları ayarlar ve son olarak (belki) bazı verileri gönderir (örneğin, POST isteğinde tipik olarak meydana geldiği gibi).

İsteği taklit etme, gönderme ve son olarak yanıtı geri alma kodu, sunucu tarafı dilinize bağlıdır.

Bir REST Api'yi test etmek istiyorsanız, komut satırından curl aracını kullanabilirsiniz.

curlbir istekte bulunur ve yanıtı stdouta çıktı olarak verir (aksi belirtilmedikçe).

Sizin durumunuzda test talebi şu şekilde yapılacaktır:

$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'

Hveya--header` yönergesi bir başlık ve değerini belirler.

Yorumlar (1)

İşte başlıklarınızı test etmek için kullanışlı bir site. Tarayıcı başlıklarınızı görebilir ve ayrıca gönderdiğiniz başlıkları geri yansıtmak için cURL kullanabilirsiniz.

Örneğin, içerik anlaşmasını şu şekilde doğrulayabilirsiniz.

Bu Accept başlığı düz metni tercih eder, bu nedenle bu formatta döner:-

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

Oysa bu JSON'u tercih eder ve bu nedenle bu formatta döner:-

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

Curl, json gösterimi için daha iyi bir seçenek olabilir, ancak bu durumda komut satırında olduğu için json yapısını anlamak zor olacaktır. json'ınızı tarayıcıda almak istiyorsanız, aşağıdaki gibi tüm XML Ek Açıklamalarını kaldırmanız yeterlidir -

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

model sınıfınızdan ve xml gösterimi için kullandığınız aynı url'yi çalıştırın.

Pom.xml dosyanızda jacson-databind bağımlılığının bulunduğundan emin olun


  com.fasterxml.jackson.core
  jackson-databind
  2.4.1
Yorumlar (1)