これまでこのブログで紹介してきたRestAPIサービスでは、JSON形式でリクエストボディの送信と結果の受信を行ってきたが、XML形式でリクエストボディの送信と結果の受信を行うこともできる。
今回は、Spring BootのRest APIサービスでXML形式を取り扱えるようにしてみたので、そのサンプルプログラムを共有する。
なお、今回はPostmanによる実行確認時に、Headerに「Accept」「Content-Type」の値を指定している。それらの値については、以下のサイトを参照のこと。
http://itdoc.hitachi.co.jp/manuals/3021/3021904200/PCAP0018.HTM
前提条件
下記記事の実装が完了していること。
作成したサンプルプログラムの内容
作成したサンプルプログラムの構成は以下の通り。
なお、上記の赤枠は、前提条件のプログラムから変更したプログラムである。
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
サンプルプログラムの実行結果
サンプルプログラムの実行結果は、以下の通り。Spring BootアプリケーションとPostmanを起動した後で、それぞれの動作確認を行う。
1) 接続先となるOracleデータベース上に、以下のUSER_DATAテーブルとデータを作成しておく。
2) リクエストを「GET」、URLを「http://localhost:8085/users」、Headersに「Accept: application/xml」を指定して「Send」ボタンを押下すると、USER_DATAテーブルの全データがXML形式で取得できることが確認できる。
3) リクエストを「GET」、URLを「http://localhost:8085/users」、Headersに「Accept: application/json」を指定して「Send」ボタンを押下すると、USER_DATAテーブルの全データがJSON形式で取得できることが確認できる。
4) リクエストを「GET」、URLを「http://localhost:8085/users」、Headersに「Accept: */*」を指定して「Send」ボタンを押下すると、USER_DATAテーブルの全データがJSON形式で取得できることが確認できる。
5) リクエストを「GET」、URLを「http://localhost:8085/users/1」、Headersに「Accept: application/xml」を指定して「Send」ボタンを押下すると、USER_DATAテーブルの全データがXML形式で取得できることが確認できる。
6) リクエストを「POST」、URLを「http://localhost:8085/users」、Headersに「Accept: application/xml」「Content-Type: application/xml」、リクエストボディに追加するデータをXML形式で設定して「Send」ボタンを押下すると、追加したデータがXML形式で返却されることが確認できる。
7) リクエストを「POST」、URLを「http://localhost:8085/users」、Headersに「Accept: application/xml」「Content-Type: application/json」、リクエストボディに追加するデータをJSON形式で設定して「Send」ボタンを押下すると、追加したデータがXML形式で返却されることが確認できる。
8) リクエストを「POST」、URLを「http://localhost:8085/users」、Headersに「Accept: application/json」「Content-Type: application/json」、リクエストボディに追加するデータをJSON形式で設定して「Send」ボタンを押下すると、追加したデータがJSON形式で返却されることが確認できる。
9) リクエストを「POST」、URLを「http://localhost:8085/users」、Headersに「Accept: */*」「Content-Type: application/xml」、リクエストボディに追加するデータをXML形式で設定して「Send」ボタンを押下すると、追加したデータがJSON形式で返却されることが確認できる。
10) リクエストを「PUT」、URLを「http://localhost:8085/users/3」、Headersに「Accept: application/xml」「Content-Type: application/xml」、リクエストボディに更新するデータをXML形式で設定して「Send」ボタンを押下すると、更新したデータがXML形式で返却されることが確認できる。
11) リクエストを「POST」、URLを「http://localhost:8085/users/hateoas」、Headersに「Accept: application/xml」「Content-Type: application/xml」、リクエストボディに追加するデータをXML形式で設定して「Send」ボタンを押下すると、追加したデータがXML形式で返却されることが確認できる。
12) 2)~11)までの操作を実行後に、接続先となるOracleデータベース上のUSER_DATAテーブルを確認すると、以下のようにデータが追加・更新されていることが確認できる。
要点まとめ
- Spring BootのRest APIサービスでXML形式を取り扱えるようにするには、jackson-dataformat-xmlライブラリを追加すればよい。