Merhaba arkadaşlar, bu yazımda Restful web servislerinin özelliklerinden ve kullanımından bahsedeceğim:
Restful Web Servisleri Nelerdir?
Restful web servisleri, web üzerinde en iyi şekilde çalışmak üzere üretilmişlerdir. Rest(Representational State Transfer), bir web servisine uygulandığında performans, ölçeklenebilirlik ve değiştirilebilirlik gibi istenen özellikleri teşvik edip hizmetlerin Web üzerinde en iyi şekilde çalışmasını sağlayan, tek tip arabirim gibi kısıtlamaları belirten bir mimari stildir.
Rest mimarisinde, veri ve işlevsellik kaynaklar olarak kabul edilir ve Tekdüzen Kaynak Tanımlayıcıları(Uniform Resource Identifiers(URIs)), tipik olarak internete bağlanır. Kaynaklar, basit bir dizi işlem kullanarak gerçekleştirilir.
Aşağıdaki ilkeler RESTful uygulamaları basit, hafif ve hızlı olmaya teşvik eder:
- URI aracılığıyla kaynak kimliği
- Uniform Arayüzü
- Kendinden tanımlayıcı mesajlar
- Köprüler yoluyla durumsal etkileşimler
JAX-RS, REST mimarisini kullanan uygulamaları geliştirmeyi kolaylaştırmak için tasarlanmış bir Java programlama dili API’sidir. JAX-RS API, RESTful web servislerinin geliştirilmesini kolaylaştırmak için JAVA programlama dili ek açıklamalarını(Annotations) kullanır.
Annotations | Açıklamalar |
@Path
|
@Path notasyonunun değeri, Java sınıfının nerede barındırılacağını gösteren göreceli(relative) bir URI yoludur:Örneğin: /test
Ayrıca bir URI yoluna değişkenleri de gömebiliriz. Örnek: /test/{isim} |
@GET | @GET notasyonu bir istek(request) yöntemi tanımlayıcısıdır ve benzer şekilde adlandırılan http metoduna karşılık gelir. Bu istek gelen metodu, http GET isteklerini çalıştıracaktır. Bir kaynağın davranışı, kaynağın yanıt verdiği(response) http yöntemiyle belirlenir. |
@POST | @POST notasyonu bir istek(request) yöntemi tanımlayıcısıdır ve benzer şekilde adlandırılan http metoduna karşılık gelir. . Bu istek gelen metodu, http POST isteklerini çalıştıracaktır. Bir kaynağın davranışı, kaynağın yanıt verdiği(response) http yöntemiyle belirlenir. |
@PUT | @PUT notasyonu bir istek(request) yöntemi tanımlayıcısıdır ve benzer şekilde adlandırılan http metoduna karşılık gelir. . Bu istek gelen metodu, http PUT isteklerini çalıştıracaktır. Bir kaynağın davranışı, kaynağın yanıt verdiği(response) http yöntemiyle belirlenir. |
@DELETE | @DELETE notasyonu bir istek(request) yöntemi tanımlayıcısıdır ve benzer şekilde adlandırılan http metoduna karşılık gelir. . Bu istek gelen metodu, http DELETE isteklerini çalıştıracaktır. Bir kaynağın davranışı, kaynağın yanıt verdiği(response) http yöntemiyle belirlenir. |
@HEAD | @HEAD notasyonu bir istek(request) yöntemi tanımlayıcısıdır ve benzer şekilde adlandırılan http metoduna karşılık gelir. . Bu istek gelen metodu, http HEAD isteklerini çalıştıracaktır. Bir kaynağın davranışı, kaynağın yanıt verdiği(response) http yöntemiyle belirlenir. |
@PathParam | @PathParam notasyonu, kaynak sınıfınızda kullanmak için ayıklayabileceğiniz bir parametredir. URI yolu parametreleri, istek URI’sından çıkarılır ve parametre adları @Path sınıfı düzeyinde notasyonda belirtilen URI yolunda değişken adlarına karşılık gelir. |
@QueryParam | @QueryParam notasyonu, kaynak sınıfında kullanmak için ayıklayabileceğiniz bir parametredir. Sorgu parametreleri istek URI sorgu parametrelerinden ayıklanır. |
@Consumes | @Consumes notasyonu, bir kaynağın consume tarafından gönderilen alabileceği MIME ortam türlerini belirtmek için kullanılır. |
@Produces | @Produces notasyonu, bir kaynağın üretebileceği ve istemciye geri gönderebileceği temsillerin MIME ortam türlerini belirtmek için kullanılır. Örneğin, “text/plain”. |
@Provider | @Provider notasyonu, JAX-RS il ilgilenen herşey için kullanılır, MessageBodyReader ve MessageBodyWriter gibi çalışma zamanında. http istekleri için MessageBodyReader bir http isteği varlık gövdesini metoda eşlemek için kullanılır parametreleri. Yanıt tarafında, bir MessageBodyWriter kullanılarak bir http yanıt varlık gövdesine bir dönüş değeri eşlenir. Uygulamanın, HTTP üstbilgileri veya farklı bir durum kodu gibi ek meta veriler sağlaması gerekiyorsa, bir yöntem, varlığı saran ve onu kullanarak oluşturulabilecek bir Yanıt verebilir.
Response. ResponseBuilder. |
Bu yazımı burada bitiriyorum diğer yazılarımda görüşmek üzere…