質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.53%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Seasar2

Seasar2はJ2EE/Java EEでの大規模な開発を効率良く行なうためのフレームワークです。 必要な設定ファイルを従来のものと比べて少なくし、依存性を分離して記述しています。 そのため、生産性の高いプログラム開発が可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

2回答

47581閲覧

外部API連携について リクエストの投げ方 レスポンスの受け取り方 接続方法 スタブの作成の仕方 Java XML json

mucho0623

総合スコア31

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Seasar2

Seasar2はJ2EE/Java EEでの大規模な開発を効率良く行なうためのフレームワークです。 必要な設定ファイルを従来のものと比べて少なくし、依存性を分離して記述しています。 そのため、生産性の高いプログラム開発が可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2016/02/27 23:24

表題の件ですが、
外部サーバーから個人情報を参照・更新するAPIがあって、
リクエストのパラメーターをセットして投げたり、
レスポンスを受け取ってその情報を加工したりしたいのですが、
具体的なJavaの実装についてお伺いしたいです。

また、ローカル環境でテストするときに
XMLのスタブを作りたいです。
どう作って、どう設置すればよいでしょうか?

【登場人物】
★こちらのサーバー
・アクション:/getPersonalInfo

★API
・外部接続先URL:http://www.XXXXXXXXX.xxx/
・サービス名:servPersonalInfo
・リクエストパラメータ:request1, request2, request3・・・
・レスポンスパラメーター:response1, response2, response3・・・

★向こうの個人情報基盤
・氏名
・電話番号
・住所

アクションのgetPersonalInfoメソッドの内は、
具体的にどのようなコーディングになるのでしょうか?

外部サーバーへの接続する際に、メソッドはこれを使うとか、
帰ってきたレスポンスのXMLの中身のプロパティを取得するメソッドはこれを使うとか、
分からないです。

そもそも、
登場人物や懸念事項がよく分かってないので、
精査も兼ねつつお願いしたいです。m(_ _)m

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

道のりが長そうで新しい言葉を入れると混乱しそうですね。。

  1. 外部APIに接続して
  2. パラメーターを送って
  3. XMLを取得して
  4. 解析して中身をとりだします。

個人情報を扱うAPIではSSLを使ってください。
多くの場合サービス提供している会社に接続元のIPを知らせる必要があります。

スタブは・・他の人に譲ります。
文字化けした!とかは、別途解決してください。

java

1package jp.engawa.test; 2 3import java.io.InputStream; 4import java.io.PrintWriter; 5import java.net.HttpURLConnection; 6import java.net.URL; 7 8import javax.xml.parsers.DocumentBuilder; 9import javax.xml.parsers.DocumentBuilderFactory; 10 11import org.w3c.dom.Document; 12import org.w3c.dom.NodeList; 13 14public class Test { 15 16 public static void main(String[] args) throws Exception { 17 //0. 外部APIに接続して 18 URL url = new URL("http://www.XXXXXXXXX.xxx/servPersonalInfo"); 19 HttpURLConnection conn = (HttpURLConnection)url.openConnection(); 20 conn.setDoOutput(true); 21 conn.connect(); 22 //1. パラメーターを送って 23 PrintWriter out = new PrintWriter(conn.getOutputStream()); 24 out.write("request1=aaa&request2=bbb"); 25 out.flush(); 26 out.close(); 27 28 //2. XMLを取得して 29 InputStream in = conn.getInputStream(); 30 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 31 DocumentBuilder builder = factory.newDocumentBuilder(); 32 Document doc = builder.parse(in); 33 in.close(); 34 35 //3. 解析して中身をとりだします。 36 NodeList nodes = doc.getElementsByTagName("response1"); 37 for(int i=0; i<nodes.getLength();i++) 38 { 39 System.out.println(nodes.item(i).getTextContent()); 40 } 41 } 42}

投稿2016/02/28 01:29

thesecret11

総合スコア234

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

概要レベルの記述なので,具体的なコードには落とせないです.
APIの仕様も不明確ですし.
せめてIF仕様を書かないとコードにはできないです.

とりあえず,必要な処理としては下記のような感じです.
必要な処理:
・リクエストのパラメーターをセットして投げる
ただ,APIに対してGETするのか,POSTするのかによってパラメータの設定の仕方が違います.
これはAPIの仕様書を読んでください.

・レスポンスを受け取ってその情報を加工
レスポンスがどんな形式で返ってくるのかわからないので,
形式含めAPI仕様書を読んでください.

投稿2016/02/28 01:07

T.Kuniyoshi

総合スコア20

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.53%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問