2009-05-14 2 views
1

У меня не было большого опыта работы с веб-службами или API.Как предоставить API для нашей системы

У нас есть сайт, основанный на Oracle-> Sun App Server-> Java-> Struts2 framework. У нас есть требование предоставить API для нашей системы. Этот API будет использоваться другими системами за пределами нашей системы. API - это просто простой SP, который мы имеем в нашей базе данных. Другая система не хочет подключаться к нашей БД, чтобы получить доступ к СП, но вместо этого и API в качестве «webservice»

Может ли сообщество пролить свет на то, как это сделать? Будет ли API помещен на наш веб-сервер? заключается в том, как к ней подключается другая система? И как сделать создание публичного API?

+0

Могут ли пользователи поддерживать связь с сервлетами или им нужен интерфейс webservice? –

+0

быть в состоянии связаться с сервлетами должно быть хорошо. Я не уверен, что именно вы подразумеваете под интерфейсом webservice. Но до тех пор, пока им не нужно устанавливать что-то на их стороне, все должно быть в порядке. – Omnipresent

ответ

1

Если вы используете сервер приложений Sun, довольно просто сделать EJB открытым как веб-сервис с тегом @WebService, а затем включить EJB в Хранилище и вернуть данные. Сервер приложений предоставляет вам инструменты для публикации WSDL, которые они будут использовать, чтобы знать, как назвать вас API.

Это, как говорится, то, что звучит легко на высоте 50 000 футов, является настоящей болью, чтобы справиться со всеми деталями. Во-первых, как насчет безопасности? Во-вторых, действительно нужны WebServices или есть более понятный механизм связи, такой как (как минимум) REST, если не какая-то простая передача сервлетов. И самое сложное: в каком формате вы вернете этот набор результатов?

В любом случае, вы можете иметь дело с политическим футболом здесь («что, вы не знаете, как делать веб-службы, все это знают и т. Д.»), Поэтому это может быть немного сложно исследовать требования. Хорошей новостью является то, что публикация веб-сервиса довольно тривиальна в последней Java EE (намного проще, чем потреблять). Плохая новость заключается в том, что детали будут убийцей. Например, опытные разработчики веб-сервисов тратят часы на проблемы с пространством имен.

+0

Спасибо. У меня мало вопросов.Если EJB отображается как веб-сервис, будет ли EJB также размещен на AppServer для подключения к нему? Я постараюсь представить требования таким образом, чтобы я не слышал, что я не знаю о веб-сервисах :) Кроме того, я нашел что-то, что показывает, как сделать сервлет в веб-сервисе (http://www.netbeans.org/kb/55/ websvc-JAX-ws.html # Exercise_3_2). – Omnipresent

+0

Да, сервер приложений будет единственным, на котором размещается EJB, и сделать доступным веб-сервис. Он будет делать все тяжелый подъем, у вас будет только аннотированный класс. – Yishai

+0

Ссылка, которую вы указали, предназначена для использования веб-службы. Это означает вызов, который будет делать ваш клиент/клиент. Вы будете делать веб-сервис, соответствующая часть этой страницы находится здесь: http://www.netbeans.org/kb/55/websvc-jax-ws.html#Exercise_1 – Yishai

2

Некоторые вещи, которые вы должны будете думать о том, являются:

Возможно, вы захотите взглянуть на https://jersey.dev.java.net/.

Было бы также полезно посмотреть, как это делает другая компания, отметьте http://www.flickr.com/services/api/ для некоторых идей.

0

Мыло или отдых или .. является одной из сторон медали и зависит от того, чего хотят клиенты. Другая (более) важная вещь - сама конструкция api. Должен ли он быть апатридом или государством. Клиенты находятся совместно на одной виртуальной машине (Appserver) или удаленной в той же локальной сети или даже в Wan. Как только связь проходит по проводу, она замедляется из-за сериализации. Поэтому вы хотите, чтобы методы API получали большие (но не слишком большие) фрагменты данных за раз.

Или, другими словами, на ваш вопрос нельзя ответить, не зная намного больше о том, чего вы хотите и что нужно делать.

Смежные вопросы