Spring Boot API連携

Spring BootのRest APIサービスでXML形式を取り扱えるようにしてみた

これまでこのブログで紹介してきたRestAPIサービスでは、JSON形式でリクエストボディの送信と結果の受信を行ってきたが、XML形式でリクエストボディの送信と結果の受信を行うこともできる。

今回は、Spring BootのRest APIサービスでXML形式を取り扱えるようにしてみたので、そのサンプルプログラムを共有する。

なお、今回はPostmanによる実行確認時に、Headerに「Accept」「Content-Type」の値を指定している。それらの値については、以下のサイトを参照のこと。
http://itdoc.hitachi.co.jp/manuals/3021/3021904200/PCAP0018.HTM

前提条件

下記記事の実装が完了していること。

Spring BootのRest APIサービスでURL情報を追加するHATEOASを利用してみたHATEOASを利用すると、RestAPIサービスにおいて、例えば、データ追加後に、追加したデータを取得するURL情報も合わせて返却する...

作成したサンプルプログラムの内容

作成したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上記の赤枠は、前提条件のプログラムから変更したプログラムである。

pom.xml(追加分)の内容は以下の通りで、データ受信/送信をXML形式に変換可能にするライブラリを追加している。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-rest-api-xml/demoRestApi



「DesignEvo」は多くのテンプレートからロゴを簡単に作成できるツールだった多くのテンプレートが用意されていてロゴを簡単に作成できるツールの一つに、「DesignEvo」があります。今回は、「DesignEvo」...

サンプルプログラムの実行結果

サンプルプログラムの実行結果は、以下の通り。Spring BootアプリケーションとPostmanを起動した後で、それぞれの動作確認を行う。

1) 接続先となるOracleデータベース上に、以下のUSER_DATAテーブルとデータを作成しておく。
サンプルプログラムの実行結果_1

2) リクエストを「GET」、URLを「http://localhost:8085/users」、Headersに「Accept: application/xml」を指定して「Send」ボタンを押下すると、USER_DATAテーブルの全データがXML形式で取得できることが確認できる。
サンプルプログラムの実行結果_2_1

サンプルプログラムの実行結果_2_2

3) リクエストを「GET」、URLを「http://localhost:8085/users」、Headersに「Accept: application/json」を指定して「Send」ボタンを押下すると、USER_DATAテーブルの全データがJSON形式で取得できることが確認できる。
サンプルプログラムの実行結果_3_1

サンプルプログラムの実行結果_3_2

4) リクエストを「GET」、URLを「http://localhost:8085/users」、Headersに「Accept: */*」を指定して「Send」ボタンを押下すると、USER_DATAテーブルの全データがJSON形式で取得できることが確認できる。
サンプルプログラムの実行結果_4_1

サンプルプログラムの実行結果_4_2

5) リクエストを「GET」、URLを「http://localhost:8085/users/1」、Headersに「Accept: application/xml」を指定して「Send」ボタンを押下すると、USER_DATAテーブルの全データがXML形式で取得できることが確認できる。
サンプルプログラムの実行結果_5_1

サンプルプログラムの実行結果_5_2

6) リクエストを「POST」、URLを「http://localhost:8085/users」、Headersに「Accept: application/xml」「Content-Type: application/xml」、リクエストボディに追加するデータをXML形式で設定して「Send」ボタンを押下すると、追加したデータがXML形式で返却されることが確認できる。
サンプルプログラムの実行結果_6_1

サンプルプログラムの実行結果_6_2 サンプルプログラムの実行結果_6_3

7) リクエストを「POST」、URLを「http://localhost:8085/users」、Headersに「Accept: application/xml」「Content-Type: application/json」、リクエストボディに追加するデータをJSON形式で設定して「Send」ボタンを押下すると、追加したデータがXML形式で返却されることが確認できる。
サンプルプログラムの実行結果_7_1

サンプルプログラムの実行結果_7_2 サンプルプログラムの実行結果_7_3

8) リクエストを「POST」、URLを「http://localhost:8085/users」、Headersに「Accept: application/json」「Content-Type: application/json」、リクエストボディに追加するデータをJSON形式で設定して「Send」ボタンを押下すると、追加したデータがJSON形式で返却されることが確認できる。
サンプルプログラムの実行結果_8_1

サンプルプログラムの実行結果_8_2 サンプルプログラムの実行結果_8_3

9) リクエストを「POST」、URLを「http://localhost:8085/users」、Headersに「Accept: */*」「Content-Type: application/xml」、リクエストボディに追加するデータをXML形式で設定して「Send」ボタンを押下すると、追加したデータがJSON形式で返却されることが確認できる。
サンプルプログラムの実行結果_9_1

サンプルプログラムの実行結果_9_2 サンプルプログラムの実行結果_9_3

10) リクエストを「PUT」、URLを「http://localhost:8085/users/3」、Headersに「Accept: application/xml」「Content-Type: application/xml」、リクエストボディに更新するデータをXML形式で設定して「Send」ボタンを押下すると、更新したデータがXML形式で返却されることが確認できる。
サンプルプログラムの実行結果_10_1

サンプルプログラムの実行結果_10_2 サンプルプログラムの実行結果_10_3

11) リクエストを「POST」、URLを「http://localhost:8085/users/hateoas」、Headersに「Accept: application/xml」「Content-Type: application/xml」、リクエストボディに追加するデータをXML形式で設定して「Send」ボタンを押下すると、追加したデータがXML形式で返却されることが確認できる。
サンプルプログラムの実行結果_11_1

サンプルプログラムの実行結果_11_2 サンプルプログラムの実行結果_11_3

12) 2)~11)までの操作を実行後に、接続先となるOracleデータベース上のUSER_DATAテーブルを確認すると、以下のようにデータが追加・更新されていることが確認できる。
サンプルプログラムの実行結果_12

要点まとめ

  • Spring BootのRest APIサービスでXML形式を取り扱えるようにするには、jackson-dataformat-xmlライブラリを追加すればよい。