2016-03-30 15 views
1

Ben bahar önyükleme ve JPA ile bir REST Sunucusu olan hakkında öğreniyorum. RestControllers için, temel sayfada, birisi ana sayfaya gittiğinde, temel sayfanın altındaki tüm RequestMappings'leri görebilecekleri davranışa sahip olmak istedim.Tüm mevcut eşleştirmeleri geri getirme İsteğiMethod GET

@RestController 
@RequestMapping("/food") 
public class FoodRestController { 

@RequestMapping(value = "/all", method = RequestMethod.GET) 
@ResponseBody 
public Iterable<Food> printAllFoods() { 
    return foodRepository.findAll(); 
} 

@RequestMapping(value = "/add", method = RequestMethod.POST) 
public ResponseEntity<?> addFood(@RequestBody Food f) { 
    foodRepository.save(f); 

    HttpHeaders httpHeaders = new HttpHeaders(); 
    return new ResponseEntity<Food>(f, httpHeaders, HttpStatus.CREATED); 
} 

Yani gidiş yukarıdaki için "localhost: 8080/gıda" geçerli bir bitiş noktası gibi bir şey gösteren bir sayfa verecekti, olası bitiş noktaları localhost şunlardır: 8080/yiyecek/tümünü veya localhost: 8080/gıda/add . GET ile bir RequestMapping alabilir ve bir gövde olarak döndürdüm, ancak elle yazılmış bir yanıt olurdu. Spring bu gibi bir teklif sunuyorsa görmek ister misiniz

cevap

0

SpringBoot Aktüatörü zaten böyle bir şey yapan bir işlevsellik vardır. , SpringBoot Actuator bir bağımlılık ekleyin uygulamasını başlatmak ve için tarayıcınızı: Hangi TÜM eşlemelerini içeren aşağıdaki (varsayarak JSON), gibi bir şey üretecek

http://[yourHostAndPort]/mappings

Bu projenizin bir parçası (Bahar son noktaları da!).

{ 
    ... 
    "{[/refresh],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}": { 
     "bean": "endpointHandlerMapping", 
     "method": "public java.lang.Object org.springframework.cloud.endpoint.GenericPostableMvcEndpoint.invoke()" 
    }, 
    "{[/restart],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}": { 
     "bean": "endpointHandlerMapping", 
     "method": "public java.lang.Object org.springframework.cloud.context.restart.RestartMvcEndpoint.invoke()" 
    }, 
    "{[/configprops],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}": { 
     "bean": "endpointHandlerMapping", 
     "method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()" 
    }, 
    "{[/env],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}": { 
     "bean": "endpointHandlerMapping", 
     "method": "public java.lang.Object org.springframework.cloud.context.environment.EnvironmentManagerMvcEndpoint.value(java.util.Map<java.lang.String, java.lang.String>)" 
    }, 
    ... 
} 

Bu snippet, diğer bazı Aktüatör uç noktalarından elde edilebilen eşlemelerin küçük bir kısmını gösterir.

Gereksinimlerinizin biraz farklı olduğunu anlıyorum, bu nedenle bu kurulum tam olarak ihtiyacınız olmayan bir şeyse, SpringBoot Actuator source code'a göz gezdirerek benzer bir şey yapan kendi uç noktalarınızı oluşturabilmeniz gerekir. eşleşmeleri eşleşmeleri için çalışmaların çoğunu yapan belirli dosya org.springframework.boot.actuate.endpoint.RequestMappingEndpoint.java'dur.

0

Swagger'u da kullanabilirsiniz. Aslında bir dokümantasyon çerçevesi. Ayrıca belgelerle birlikte mevcut olan API'leri denemek için güzel bir kullanıcı arayüzü oluşturur.

İlgili konular