RestEasy İle Restful Web Servis Dersleri 15 – Context
Merhabalar. Bu yazıda RestEasy içerisinde bize enjeksiyon (injection) imkanı sunan Context konusuna değineceğiz.
Yaptığımız projeler içerisinde bildiğiniz gibi sınıflar arası bağımlılıklar olur ve frameworkler bu bağımlılığı en minimize seviyede kullanmak için ekstra imkanlar sunarlar. İşte RestEasy kütüphanesi de içerisinde @Context notasyonu ile bazı sınıfların enjeksiyonu konusunda imkan sağlar. Enjeksiyon imkanı sağlanan bu sınıflar şöyledir:
- javax.ws.rs.core.HttpHeaders
- javax.ws.rs.core.UrlInfo
- javaw.ws.rs.core.Request
- javax.servlet.http.HttpServletRequest
- javax.servlet.http.HttpServletResponse
- javax.servlet.ServletConfig
- javax.servlet.ServletContext
- javax.ws.rs.core.SecurityContext
Şimdi bu sınıflar içerisinden örneğin HttpHeaders sınıfını inject edelim ve bir bilgi alıp döndürelim.
ContextExample.java*
package restPackage;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
@Path("/contextExample")
public class ContextExample {
@Context
private HttpHeaders httpHeaders;
@GET
public String getHostInfo(){
return httpHeaders.getHeaderString("Host");
}
}
Java kodumuz içerisinde @Context notasyonu ile HttpHeaders sınıfından bir örneği (instance) ContextExample sınıfına enjekte etmiş oluyoruz. GET metodu içerisinde de header’dan host bilgisini alıyoruz. Bu konu biraz da Servlet ve Network tarafı ile de ilgili.
Ekran Çıktısı
İlgili web servis metoduna istekte bulunduğumuzda bizi bu ekran karşılıyor.
Sayfada herhangi bir yere sağ tıklayıp Inspect Element (İncele) deyip Network tabına tıklayın ve sayfayı yenileyin. Gelen kısımdaki contextExample’a tıklayın. Orada Request Headers içinde gördüğümüz Host bilgisi bizim getHeaderString metodu ile aldığımız bilgidir. Buradaki diğer bilgileri ilgili ismi parametre olarak vererek aynı metotla çekebiliriz.
Diğer sınıfları ihtiyacımız doğrultusunda inject edip kullanabiliriz arkadaşlar.
Bu yazıda anlatacaklarım da bu kadar arkadaşlar. Gelecek yazıda görüşene kadar sağlıcakla kalın.
Selam Ve Sevgilerimle