2009-05-14 14 views
1

私はWebサービスやAPIの経験が豊富です。私たちのシステムにAPIを提供する方法

Oracle-> Sun App Server-> Java-> Struts2フレームワークのWebサイトがあります。 GoogleのシステムにはAPIを提供する必要があります。このAPIは、システム外の他のシステムで使用されます。 APIは、私たちのデータベースにあるシンプルなSPのためのものです。他のシステムは、SPにアクセスする代わりにDBに接続するのではなく、代わりに「Webサービス」としてのAPIを使用します。

コミュニティはこれについてどうやって光を当てることができますか? APIは私たちのウェブサーバーに置かれますか?他のシステムがそれにどのように接続するのでしょうか?公開APIを作成するにはどうすればよいですか?

+0

サーブレットと通信できるか、Webサービスインターフェイスが必要ですか? –

+0

サーブレットと通信することができればいいはずです。私は正確にあなたがwebserviceインターフェイスを意味するか分からない。しかし、彼らが彼らの側に何かをインストールする必要はない限り、それは大丈夫になるはずです。 – Omnipresent

答えて

1

Sun App Serverを使用している場合、@WebServiceタグを使用してEJBをWebサービスとして公開し、そのEJBにStored Proceedureを呼び出してデータを返すことは、ほんのわずかなことです。アプリケーションサーバーは、WSDLを公開するためのツールを提供します。WSDLはAPIの呼び出し方法を知るために使用します。

言われているように、5万フィートで簡単に聞こえるものは、すべての細部に対処するのが本当の苦痛です。まず、セキュリティはどうですか? 2つ目は、Webサービスが本当に必要か、サーブレット通信ではないにしても、(少なくとも)RESTなど、より明確な通信メカニズムがあることです。最も難しい部分:正確にどのフォーマットでこの結果セットを返すのですか?

とにかく、ここで政治的なフットボールを少しでも扱うことができます(「ウェブサービスのやり方がわからない、誰もがそれを知っています」など)。要求事項。良いニュースは、Webサービスを公開することは、最新のJava EE(消費するよりもはるかに簡単です)ではかなり簡単です。悪い知らせは、細部が殺人者になるということです。経験豊富なWebサービス開発者は、たとえば名前空間の問題に時間を費やしています。

+0

ありがとうございます。私はいくつかの質問があります。EJBがWebサービスとして公開されている場合、そのEJBもAppServerに接続されて接続されますか?私は、Webサービスについて知っていることはありません。私は、ウェブサービスについてサーブレットを作る方法を示しています。http://www.netbeans.org/kb/55/ websvc-jax-ws.html#Exercise_3_2)。 – Omnipresent

+0

はい、アプリケーションサーバーはEJBをホストし、Webサービスを利用できるようにします。それはすべての重い持ち上げを行います、あなたはちょうど注釈クラスを持っています。 – Yishai

+0

あなたが提供したリンクは、Webサービスを利用するためのものでした。それはあなたの顧客/クライアントがやっていることである、それを呼び出すことを意味します。あなたはウェブサービスを作ります。そのページの関連部分はここにあります: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

メダルの片面で、クライアントが望むものに依存します。 もう1つ重要なことは、apiデザイン自体です。ステートレスまたはステートフルにしてください。クライアントは、同一のVM(Appserver)内に同じ場所に配置されているか、同じLAN内にあるか、またはワンであってもリモートであるかどうか。 通信がワイヤを経由するとすぐに、シリアル化によって通信が遅くなります。だから、APIメソッドは、一度に大きな(しかしそれほど大きくない)チャンクを取得したいと思う。

言い換えれば、あなたの質問は、あなたが何をしたい、何をする必要があるかについて多くのことを知らなくても、本当に答えられることはありません。

関連する問題