Spring kullanarak bir RESTful web servisi uygulayacağım. böyle sıradan bir PUT yöntemi, bir şey olalım: başarıyla hiçbir ekstra çaba ile Foo örneğine dönüştürülür (Bu Foo sınıfının karşılık geliyorsa) bu tür bir vaka girişi JSON biçimindeFarklı URL girişleri aynı URL'ye ve aynı yöntemle JSON biçiminde tüketiliyor RESTful service
@RequestMapping(method=RequestMethod.PUT, value="/foo")
public @ResponseBody void updateFoo(@RequestBody Foo foo) {
fooService.update(foo);
}
veya hata olacak Yanlış formatta verilmesi. Ancak, hizmetin aynı yöntemi (ör. PUT) ve aynı URL'yi (ör./Foo) kullanarak iki farklı türde biçimi kullanmasını sağlamak istiyorum.
Yani gibi muhtemelen baktım:
//PUT method #1
@RequestMapping(method=RequestMethod.PUT, value="/foo")
public @ResponseBody void updateFoo(@RequestBody Foo foo) {
fooService.update(foo);
}
//PUT method #2
@RequestMapping(method=RequestMethod.PUT, value="/foo")
public @ResponseBody void updateFoo(@RequestBody FooExtra fooExtra) {
fooService.update(fooExtra);
}
ve Bahar dönüştürücü Foo ama aynı zamanda FooExtra ve giriş biçimine bağlı PUT yöntemini karşılık gelen çağrılan sadece giriş JSON dönüştürmek için çalıştı. Aslında, tam olarak yukarıda açıklandığı gibi değil, başarılı bir şekilde uygulamaya çalıştım. Bu mümkün mü? Belki bir çeşit "hile" ye ihtiyacım var? Böyle bir davranışı gerçekleştirmenin en iyi (ve en uygun) yolu nedir? Elbette, her zaman iki farklı URL yapabilirdim, ancak aynı olanla mümkün olup olmadığını bilmek isterim.
Eğer "RESTful" öğesinin ne olduğunu biliyorsanız, medya türleri hakkında da bilgi sahibi olursunuz. Gitmenin yolu budur. – zeroflagL