DropWizard, REST için başlık altında Jersey kullanır. DropWizard uygulamasının göstereceği RESTful uç noktaları için bir istemci nasıl yazılacağını anlamaya çalışıyorum. Bu yüzden o yapılandırılmış API istemci hayal ediyorumDropWizard/Jersey API İstemcileri
@Path("/cars")
public class CarResource extends Resource {
// CRUDs car instances to some database (DAO).
public CardDao carDao = new CarDao();
@POST
public Car createCar(String make, String model, String rgbColor) {
Car car = new Car(make, model, rgbColor);
carDao.saveCar(car);
return car;
}
@GET
@Path("/make/{make}")
public List<Car> getCarsByMake(String make) {
List<Car> cars = carDao.getCarsByMake(make);
return cars;
}
}
: Bu örnek uğruna
, benim DropWizard uygulaması CRUDding otomobiller için bir kaç basit RESTful bitiş noktaları sunar birCarResource
sahiptir diyelim
// Packaged up in a JAR library. Can be used by any Java executable to hit the Car Service
// endpoints.
public class CarServiceClient {
public HttpClient httpClient;
public Car createCar(String make, String model, String rgbColor) {
// Use 'httpClient' to make an HTTP POST to the /cars endpoint.
// Needs to deserialize JSON returned from server into a `Car` instance.
// But also needs to handle if the server threw a `WebApplicationException` or
// returned a NULL.
}
public List<Car> getCarsByMake(String make) {
// Use 'httpClient' to make an HTTP GET to the /cars/make/{make} endpoint.
// Needs to deserialize JSON returned from server into a list of `Car` instances.
// But also needs to handle if the server threw a `WebApplicationException` or
// returned a NULL.
}
}
Ama birbirlerine bütünüyle aykırıdır bulabilirsiniz Sihirbazı müşterilerine Bırak için sadece iki resmi referanslar: a CarServiceClient
gibi bir şey olabilir
- DropWizard recommended project structure - Ben
car.service.client
paketi altında bircar-client
projede müvekkilim kodu koymalıyız iddia ettiği; ama daha sonra ... - "DropWizard İstemcisi" gibi görünen, DropWizard uygulamasının diğer RESTful web hizmetleriyle (böylece aracı olarak işlev görür) bütünleştirilmesi anlamına gelir.
Bu yüzden, DropWizard web hizmetleriniz için Java API istemcileri yazmanın standart yolu nedir? DropWizard'ın bu tür bir kullanım durumu için kullanabileceğim bir istemci kütüphanesi var mı? İstemciyi bazı Jersey istemci API'sı aracılığıyla uygulamalı mıyım? Birisi, CarServiceClient
'a sahte kod ekleyebilir mi, bu yüzden bunun nasıl işe yaradığını anlayabilir miyim?