10
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SOAPとREST

##参考URL
・Webサービス Web APIのまとめ
 http://skill-note.net/post-666/
・今さら聞けないWebAPIの実装方式RESTとSOAPの違い
 https://qiita.com/pink/items/f1a22840619d3b79c4f2
・SOAP と REST の違い
 http://freed411.doorblog.jp/archives/30018661.html
##REST
REpresentational State Transferの略。
ネットワーク上のコンテンツ(リソース)を一意なURLで表すのが基本。
各リソース(URL)に対してGET,POST,PUT,DELETEでリクエストを送信しレスポンスをXMLやjsonなどで受け取る形式
⇒レスポンスのフォーマット形式は指定されていないが、XMLが利用されることは少なく、ほぼjson

RESTはURLがリソースに対応づけられるためURLは名詞的になることが多い。
また、Webブラウザで容易に動作確認ができることが最大の特徴、メリットで、わざわざテスト用アプリを作る必要がない。
デメリットとしては、リクエストがURLにパラメータを追加する形となるため、パラメータの数に比例してURLが長くなる危険性がある。
###RESTの定義
・WADL(あまり使用されていない)(Spring MVCでは対応していない)
 https://tc.hatenablog.com/entry/2015/01/24/134040
###RESTの設計原則
・アドレス指定可能なURIで公開されていること
・インターフェース(HTTPメソッドの利用)の統一がされていること
・ステートレスであること
・処理結果がHTTPステータスコードで通知されること
###参考URL
・REST入門 基礎知識
 https://qiita.com/TakahiRoyte/items/949f4e88caecb02119aa
・REST APIとは? – API設計のポイント!
 http://wp.tech-style.info/archives/683
・0からREST APIについて調べてみた
 https://qiita.com/masato44gm/items/dffb8281536ad321fb08
・REST、Web サービス、そして RESTful なサービス
 https://www.ibm.com/developerworks/jp/webservices/library/ws-RESTservices/index.html
##SOAP
SimpleObject Access Protocolの略。
リクエストおよびレスポンスともにXMLフォーマットのデータで行う形式。
SOAPのURLは操作と対応づけられるため、URLの命名が動詞的になることが多い。
###実装方法について
・クラスのインターフェース定義から WSDL を生成 = ボトムアップ
 .NETの開発に多いが、Javaでも増えてきている
 ・java2wsdl
 ・disco
・WSDL インターフェース記述からクラス・スケルトンを生成 = トップダウン
 Javaの開発はおもにこちら
 ・wsdl2java
 ・wsimport
 ・wsdl
###参考URL
・正しい知識としてのSOAP
 https://qiita.com/Urushibara01/items/f19a9489c08313b9fdde
・Spring WS(WebService)でSOAPリクエストを受け取るための設定
 https://qiita.com/mugi_uno/items/42bbc2bdd6af5bbf3f36

#SOAP、REST双方を使用する開発
##開発の順序
1.XMLデータ構造の定義決定
2.SOAPのみが使用するWSDLの作成
  スキーマやWSDLを記述するのは大変だが、特定のツールへの依存を回避やメンテナンス性の確保のため、自動生成に頼らない方が確実
  ★SOAPを作成すれば自動的にRESTにも対応してくれるミドルウエアもある。
  (Axis2, .net Framework等)
3.RESTの入出力サンプルの作成
##参考URL
・3.8 Web 2.0時代のWebServices ~SOAP/REST使い分けの指針
 http://xmlconsortium.org/wg/web2.0/teigensho/4--REST-SOAP.html

#ソースコードとWSDL
##ソースコードからWSDLの作成
###eclipseからWSDLの自動生成⇒java2wsdlコマンドを使用する
以下の手順でWSDLを作成すると、eclipse上でWebサービス・エクスプローラを使用してUnitTestを実施可能
 1.作成したjavaファイルをeclipseのプロジェクトエクスプローラ上で右クリック
 2.Webサービス>Webサービスの作成
 3.ボトムアップでJavaプロキシのWebサービスを作成
###参考URL
・WSDL自動生成
 https://bayside.hatenablog.com/entry/20051025/p1
・いまさら聞けない「Webサービス」の常識 (3/4)-【3】EclipseでJavaクラスからWSDL、Webサービスのインターフェイス実装コードを自動生成
 https://www.atmarkit.co.jp/ait/articles/1002/26/news094_3.html
##WSDLからソースコードの作成
###参考URL
・WSDL ファイルからの JAX-WS クライアントの開発
 https://www.ibm.com/support/knowledgecenter/ja/SS7K4U_8.5.5/com.ibm.websphere.zseries.doc/ae/twbs_jaxwsclientfromwsdl.html
・[Java] Axis2を使いWSDLからWEBサービスとクライアントを作成
 http://d.hatena.ne.jp/modalblue/20080817/1218971413

#SOAPUIを使用したUnitTest
SOAPUIではSOAP、REST問わずユニットテストの実行が可能
★参考になりそうなサンプル★(Java,Spring Boot,JSONデータ取得のREST方式で実装)
・REST・SOAP・(MQ) テストツール SoapUI を使ってみた
 https://www.project-respite.com/soapui-starter/
##RESTでのテスト手順
1.作成したJavaProjectのimport
2.project.xmlの読み込み
3.取り込んだプロジェクトを開き、「モック作成」を選ぶ
4.返却アクションから「POST」を選択
5.ダイアログボックスにレスポンスのリソースパスとその内容を記述する
6.レスポンスエディタを開き、ステータスコードとそのレスポンスの内容を設定する
★デメリット
RESTのレスポンスはxml形式ではないため、SoapUIからテストケースごとに一つ一つレスポンスを設定する必要がある。
事前に返却結果となるjsonを用意しておくことはできるが、xml形式のように
xmlを作る→貼り付ける→実行する
とテンポよく進められなさそう。
###参考URL
・Getting Started with REST Testing in SoapUI
 https://www.soapui.org/rest-testing/getting-started.html  
##参考URL
・SOAP UI
 https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/PD+Professional/page/SOAP+UI
・[Soap UI]Webサービスのテストツール
 http://skill-note.net/post-202/
・RESTのMockテストにSoapUIを使うには
 http://begirama.hatenablog.com/entry/2013/03/07/021638
・SOAP UIのMock Serviceを使った効率的なWebサービスのテスト
 http://begirama.hatenablog.com/entry/20120709/1341820969
・SOAP UIのTestSuite機能を使ったWebサービスのテスト自動化
 http://begirama.hatenablog.com/entry/2012/07/31/162202
・SoapUIを使った通信処理のテスト(送信先サーバをモックする)
 https://seri.hatenablog.com/entry/2015/05/13/175312
・soapUIを用いたWSS(WebServiceServer)テスト
 https://www.brainsellers.com/blog/inastream/2010/10/soapuiwsswebserviceserver.html
・RESTful Mocking Overview
 https://www.soapui.org/rest-testing-mocking/service-mocking-overview.html

#WAS7とsoap
 アノテーションによって大幅に単純化
 WebSphere Application Server V7 の JAX-WS 実装では、★SOAP 1.2★をサポート
##参考URL
・WebSphere Application Server V7 の新機能
 https://www.ibm.com/developerworks/jp/websphere/library/was/was7_new/

#その他参考
・統合開発環境でWebサービスを作る
 https://www.atmarkit.co.jp/ait/articles/0305/21/news003_4.html
・Websphereのweb.xml
 https://blog.goo.ne.jp/nokonoko2006/e/35348798f511976290a668bd0b077039

10
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?