Örnek

Jersey'de Servis Adlarını ve Parametreleri Ekrana Basan Bir Örnek

Bu örnekte Jersey'de bir web projesinde hangi resource'ların olduğunu ekrana basacağız.
List<AbstractResource> list=new ArrayList<>();
AbstractResource resource1 = IntrospectionModeller.createResource(MyService1.class);
AbstractResource resource2 = IntrospectionModeller.createResource(MyService2.class);
list=Arrays.asList(resource1, resource2);
for (AbstractResource abstractResource : list) {
	
	String resourcePath=abstractResource.getPath().getValue(); 	
	
	for (AbstractSubResourceMethod srm :abstractResource.getSubResourceMethods())
	{
		String uri =  resourcePath + "/" + srm.getPath().getValue();
		
		// Query Param'lar Eklenir
		List<Parameter> parameters= srm.getParameters();			   
		for (Parameter parameter : parameters) {
		
			if(parameter.getSource()==null){
				continue;			    		
			}			    	
			if(parameter.getSource().name().equals("QUERY")){
				if(uri.indexOf("?")==-1){
					uri+="?";	
				}else{
					uri+="&";	
				}
				uri+=parameter.getSourceName()+"=";
			}			    	
		}
		
		System.out.println("("+srm.getHttpMethod()+")" + uri + " [return type : " + srm.getReturnType().getName()+"]");
	}
	
	System.out.println();
}
MyService1, MyService2 şeklinde iki tane resource sınıfı var.
IntrospectionModeller.createResource(MyService.class);
ile bir Resource sınıfın modeli yüklenir. getSubResourceMethods() yöntemi ile resource sınıfındaki method'ların (sub resource) listesi alınabilir. AbstractSubResourceMethod sınıfından ise yöntemin method'u (GET, POST vb.), yöntemin dönüş tip, parametereleri alınabilir. Biz yukarıdaki örnekte sadece QueryParam tipindeki parametreleri aldık. ENTITY, MATRIX, PATH, COOKIE, HEADER, CONTEXT, FORM gibi farklı parametreler de eklenebilir. Örneği çalıştırdığımızda aşağıdaki gibi bir çıktı elde edebilir :
(GET)/category/search?q= [return type : java.lang.String]
(GET)/category/child/{categoryId} [return type : java.lang.String]
(PUT)/question//session?member_id= [return type : java.lang.String]
(PUT)/question//session/{session_id}/{question_id}/answer/{option_id} [return type : java.lang.String]
zafer.teker , 17.07.2021

Bu Sayfayı Paylaş:

Fibiler Üyelerinin Yorumları


Tüm üyeler içeriklere yorum ekleyerek katkıda bulunabilir : Yorum Gir

Misafir Yorumları




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir