これまでこのブログで紹介してきたRestAPIサービスでは、JSON形式でリクエストボディの送信と結果の受信を行ってきたが、XML形式でリクエストボディの送信と結果の受信を行うこともできる。
今回は、Spring BootのRest APIサービスでXML形式を取り扱えるようにしてみたので、そのサンプルプログラムを共有する。
なお、今回はPostmanによる実行確認時に、Headerに「Accept」「Content-Type」の値を指定している。それらの値については、以下のサイトを参照のこと。
http://itdoc.hitachi.co.jp/manuals/3021/3021904200/PCAP0018.HTM
前提条件
下記記事の実装が完了していること。
![](https://www.purin-it.com/wp-content/uploads/2022/03/soft-light-gc5333f747_640-320x180.jpg)
作成したサンプルプログラムの内容
作成したサンプルプログラムの構成は以下の通り。
なお、上記の赤枠は、前提条件のプログラムから変更したプログラムである。
pom.xml(追加分)の内容は以下の通りで、データ受信/送信をXML形式に変換可能にするライブラリを追加している。
1 2 3 4 5 | <!-- データ受信/送信をXML形式に変換可能にするライブラリを追加 --> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> </dependency> |
その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-rest-api-xml/demoRestApi
![](https://www.purin-it.com/wp-content/uploads/2021/11/milky-way-ge96c98dd3_640-320x180.jpg)
サンプルプログラムの実行結果
サンプルプログラムの実行結果は、以下の通り。Spring BootアプリケーションとPostmanを起動した後で、それぞれの動作確認を行う。
1) 接続先となるOracleデータベース上に、以下のUSER_DATAテーブルとデータを作成しておく。
2) リクエストを「GET」、URLを「http://localhost:8085/users」、Headersに「Accept: application/xml」を指定して「Send」ボタンを押下すると、USER_DATAテーブルの全データがXML形式で取得できることが確認できる。
![サンプルプログラムの実行結果_2_2](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_2_2-1.png)
3) リクエストを「GET」、URLを「http://localhost:8085/users」、Headersに「Accept: application/json」を指定して「Send」ボタンを押下すると、USER_DATAテーブルの全データがJSON形式で取得できることが確認できる。
![サンプルプログラムの実行結果_3_2](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_3_2-1.png)
4) リクエストを「GET」、URLを「http://localhost:8085/users」、Headersに「Accept: */*」を指定して「Send」ボタンを押下すると、USER_DATAテーブルの全データがJSON形式で取得できることが確認できる。
![サンプルプログラムの実行結果_4_2](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_4_2-1.png)
5) リクエストを「GET」、URLを「http://localhost:8085/users/1」、Headersに「Accept: application/xml」を指定して「Send」ボタンを押下すると、USER_DATAテーブルの全データがXML形式で取得できることが確認できる。
![サンプルプログラムの実行結果_5_2](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_5_2-2.png)
6) リクエストを「POST」、URLを「http://localhost:8085/users」、Headersに「Accept: application/xml」「Content-Type: application/xml」、リクエストボディに追加するデータをXML形式で設定して「Send」ボタンを押下すると、追加したデータがXML形式で返却されることが確認できる。
![サンプルプログラムの実行結果_6_2](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_6_2-1.png)
![サンプルプログラムの実行結果_6_3](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_6_3.png)
7) リクエストを「POST」、URLを「http://localhost:8085/users」、Headersに「Accept: application/xml」「Content-Type: application/json」、リクエストボディに追加するデータをJSON形式で設定して「Send」ボタンを押下すると、追加したデータがXML形式で返却されることが確認できる。
![サンプルプログラムの実行結果_7_2](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_7_2.png)
![サンプルプログラムの実行結果_7_3](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_7_3.png)
8) リクエストを「POST」、URLを「http://localhost:8085/users」、Headersに「Accept: application/json」「Content-Type: application/json」、リクエストボディに追加するデータをJSON形式で設定して「Send」ボタンを押下すると、追加したデータがJSON形式で返却されることが確認できる。
![サンプルプログラムの実行結果_8_2](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_8_2.png)
![サンプルプログラムの実行結果_8_3](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_8_3.png)
9) リクエストを「POST」、URLを「http://localhost:8085/users」、Headersに「Accept: */*」「Content-Type: application/xml」、リクエストボディに追加するデータをXML形式で設定して「Send」ボタンを押下すると、追加したデータがJSON形式で返却されることが確認できる。
![サンプルプログラムの実行結果_9_2](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_9_2.png)
![サンプルプログラムの実行結果_9_3](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_9_3.png)
10) リクエストを「PUT」、URLを「http://localhost:8085/users/3」、Headersに「Accept: application/xml」「Content-Type: application/xml」、リクエストボディに更新するデータをXML形式で設定して「Send」ボタンを押下すると、更新したデータがXML形式で返却されることが確認できる。
![サンプルプログラムの実行結果_10_2](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_10_2.png)
![サンプルプログラムの実行結果_10_3](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_10_3.png)
11) リクエストを「POST」、URLを「http://localhost:8085/users/hateoas」、Headersに「Accept: application/xml」「Content-Type: application/xml」、リクエストボディに追加するデータをXML形式で設定して「Send」ボタンを押下すると、追加したデータがXML形式で返却されることが確認できる。
![サンプルプログラムの実行結果_11_2](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_11_2.png)
![サンプルプログラムの実行結果_11_3](https://www.purin-it.com/wp-content/uploads/2022/03/exec_program_11_3.png)
12) 2)~11)までの操作を実行後に、接続先となるOracleデータベース上のUSER_DATAテーブルを確認すると、以下のようにデータが追加・更新されていることが確認できる。
要点まとめ
- Spring BootのRest APIサービスでXML形式を取り扱えるようにするには、jackson-dataformat-xmlライブラリを追加すればよい。