Я создал ресурс Dropwizard и сопоставил его с API REST. Теперь я хочу повторно использовать этот API ресурсов из других точек моего кода в качестве JAVA API. Как я могу это сделать?Как я могу получить доступ к ресурсу Dropwizard напрямую, а не через REST
Это класс ресурсов:
@Path("/providers_new")
public class ProviderResource {
private ProviderDAO dao;
public ProviderResource(ProviderDAO dao) {
this.dao = dao;
}
@GET
@Path("/get")
@Produces("application/json")
public List<Provider> getAll() {
return dao.getAllProviders();
}
}
Пожалуйста, обратите внимание, что ProviderResource инициализируется дао:
public class EntitiesService extends Service<EntitiesServiceConfiguration> {
public static void main(String[] args) throws Exception {
new EntitiesService().run(args);
}
@Override
public void initialize(Bootstrap<EntitiesServiceConfiguration> bootstrap) {
bootstrap.setName("entities");
...
}
@Override
public void run(EntitiesServiceConfiguration configuration,
Environment environment) throws ClassNotFoundException {
final DBIFactory factory = new DBIFactory();
final DBI jdbi = factory.build(environment, configuration.getDatabaseConfiguration(), "my_db");
final ProviderDAO dao = jdbi.onDemand(ProviderDAO.class);
environment.addResource(new ProviderResource(dao));
...
}
}
Теперь, когда ProviderResource в эфире, я хотел бы использовать его из моего кода , Что-то вроде:
ArrayList<Provider> providers = iDontKnowHowToGetProviderResource.getAll();
Что вы скажете?
Ваши ответы действительно приятные. Осмотревшись и спросив друга, я узнал, как решить мою проблему. Вы можете видеть это в моем ответе. – LiorK