SlideShare a Scribd company logo
1 of 49
Download to read offline
1
Spring Bootで作る

RESTful Web Service	
2018/10/31
Starlight & Storm
大野 渉
自己紹介	
•  大野 渉
•  Starlight & Storm所属、JSUGスタッフ
•  仕事
–  講師、開発支援
•  オブジェクト指向
•  Spring等のオープンソースフレームワーク
•  etc
[改訂新版]Spring入門	
2
Agenda	
•  RESTful Web Serviceとは
•  Spring BootでRESTful Web Serviceを作る
•  GET/POST/PUT/DELETEの実装例
•  Spring MVC Test Frameworkを使ったテスト
3
RESTful Web Serviceとは	
4
RESTful Web Serviceとは	
•  ざっくりと・・・
–  RESTful
•  RESTの原則に則っている
–  Web Service
•  Webに公開された「アプリケーション向け」のAPI	
5
スマホ	
ブラウザ
(JavaScript)	
システム	
RESTful	
Web	Service	
RESTの原則
RESTとは	
•  Webのアーキテクチャスタイルの1つ
–  Web上のリソースをURIで識別
–  リソースに対する操作をHTTPメソッドで表現
•  操作をGET/POST/PUT/DELETEで指定
•  操作の結果をHTTPステータスコードで表現
6	
http://foo.bar.baz/	
/user/1	
	
name	=	太郎	
address	=	東京	
/user/5	
・・・	
/user/2	
・・・	
/user/4	
・・・	
URI:
http://foo.bar.baz/user/1
RESTサーバ	
RESTのイメージ	
7	
GET /user/1	
200 OK
・・・
ユーザ
id=1
name="太郎"
POST /user
ユーザ
name="次郎"	
201 CREATED
Location: /user/2	
ユーザ検索	
(id=1)	
ユーザ登録	
(id=2、name=次郎)	
REST	
クライアント	
REST	
クライアント
主なHTTPメソッド	
8
HTTP
メソッド	
意味	
成功時の
ステータスコード	
GET	 取得	 200(OK)	
POST	 作成 ※1	 201(CREATED)	
PUT	 更新 ※1	 200(OK)	
DELETE	 削除	 204(NO CONTENT)	
※1 大雑把に記述しています
主なRESTのデータフォーマット	
9	
<user>
<name>太郎</name>
<address>東京</address>
<member>true</member>
</user>
{
"name": "太郎"
"address": "東京"
"member": true
}
XMLフォーマット	 JSONフォーマット
RESTful Web Serviceの実際	
•  広い意味で、
「HTTPプロトコルを使用して
JSONなどのデータを送受信するAPI」
と捉えられることが多い
10
Spring Bootで

RESTful Web Serviceを作る	
11
Webコンテナ	
Spring Bootとは	
•  Spring Frameworkをベースとしたアプリケーショ
ンを実行するための仕組み
–  設定より規約
–  Spring BootベースのWebアプリケーションは、Webコ
ンテナも含む
12
Webアプリケーション	
Spring Boot
Webアプリケーション	
組込Webコンテナ
Spring MVCとは	
•  Spring Frameworkに含まれるMVCフレームワーク
•  RESTful Web Serviceにも対応している
–  RestControllerとして実装する	
13図はSpring Frameworkリファレンスマニュアルより引用
(https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html)
Spring Boot Webアプリケーション	
RestControllerのイメージ	
14	
RestController
メソッド	
HTTPリクエスト	
HTTPレスポンス	
出力(JSON形式)	
入力(JSON形式)	 Java
オブジェクト	
引数として
受け取る	
戻り値として
返す	
Java
オブジェクト	
Http
Message
Converter
HttpMessageConverter	
•  HTTPのメッセージとJavaオブジェクトを変換する
–  Spring MVCが裏で実行してくれるため、開発者はデー
タの形式はあまり意識する必要がない
–  JSONメッセージの場合、デフォルトではJackson実装
が使用される
15
JSON形式	 Java
オブジェクト	
MappingJackson2
HttpMessageConverter
(Jackson実装)
Jacksonによるマッピングの例	
16
{
"id": 100,
"name": "山田 太郎",
"address": {
"prefecture": "東京都",
"city": "町田市",
"detail": "どこか1-1"
}
}	
class Person {
Long id;
String name;
Address address;
// Getter, Setter
}
class Address {
String prefecture;
String city;
String detail;
// Getter, Setter
}
作成手順	
1.  環境構築
2.  JSONデータに対応したクラス作成
3.  RestControllerクラス作成
4.  メソッド作成
5.  起動と動作確認
17
例 メッセージ返却API	
18
{
"message":
"こんにちは、山田 太郎さん"
}	
POST /message
message =
"こんにちは、" + name + "さん"	
{
"name": "山田 太郎"
}	
HTTPリクエスト	
HTTPレスポンス
作成手順	
1.  環境構築
2.  JSONデータに対応したクラス作成
3.  RestControllerクラス作成
4.  メソッド作成
5.  起動と動作確認
19
1.環境構築	
•  Spring Bootアプリケーションを作成
–  dependencyに「Web」を選択
•  プロジェクト作成方法
–  Spring Initializrで作成
–  Spring Tools(Spring Tool Suite)で「Spring Starter
Project」を作成
20
Spring Initializr	
21
Webを選択	
https://start.spring.io/
Spring Tools	
22
Webを選択	
Spring Starter Projectを作成
作成手順	
1.  環境構築
2.  JSONデータに対応したクラス作成
3.  RestControllerクラス作成
4.  メソッド作成
5.  起動と動作確認
23
2.JSONデータに対応したクラス作成	
24
{
"message":
"こんにちは、山田 太郎さん"
}	
{
"name": "山田 太郎"
}	
public class MessageRequest {
private String name;
// Getter, Setter
}
public class MessageResponse {
private String message;
// Getter, Setter
}
作成手順	
1.  環境構築
2.  JSONデータに対応したクラス作成
3.  RestControllerクラス作成
4.  メソッド作成
5.  起動と動作確認
25
3.RestControllerクラス作成①	
•  新規クラス作成
–  普通に作る	
26
public class MessageRestController {
}
3.RestControllerクラス作成②	
•  @RestControllerアノテーションでRestController
として定義
–  またComponentScanの対象となり、DIコンテナに自動
で登録される	
27
@RestController
public class MessageRestController {
}
4.メソッド作成①	
•  リクエストに対応するメソッドを作成する
–  引数:リクエストオブジェクト
–  戻り値:レスポンスオブジェクト	
28
@RestController
public class MessageRestController {
public MessageResponse createMessage(MessageRequest request) {
String name = request.getName();
String message = "こんにちは、" + name + "さん";
MessageResponse response = new MessageResponse ();
response.setMessage(message);
return response;
}
}
4.メソッド作成②	
•  アノテーション付与
–  URLを@PostMappingアノテーションで指定
–  @RequestBodyアノテーションをリクエストオブジェクト
に指定する	
29
@RestController
public class MessageRestController {
@PostMapping("/message")
public MessageResponse createMessage(
@RequestBody MessageRequest request) {
・・・・
}
}
作成手順	
1.  環境構築
2.  JSONデータに対応したクラス作成
3.  RestControllerクラス作成
4.  メソッド作成
5.  起動と動作確認
30
5.起動と動作確認①	
•  アプリ実行方法①
–  プロジェクトで右クリック
–  「Run As」 → 「Spring Boot App」
•  アプリ実行方法②
–  Boot Dashboardから実行	
31
5.起動と動作確認②	
•  動作確認
–  実行例(curlコマンド)
32
curl -i http://localhost:8080/message -X POST
-H "Content-Type: application/json" -d "{"name": "山田 太郎"}"
	
※ 実際は1行で入力します	
実行	
HTTP/1.1 200
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Tue, 30 Oct 2018 12:26:34 GMT
{"message":"こんにちは、山田 太郎さん!!"}	
結果
GET/POST/PUT/DELETEの実装例	
33
GETの実装例	
•  複数件取得
•  1件取得	
34
@GetMapping("/user")
public List<UserDto> getAll() {
return ・・・ // 全件検索結果をreturn
}
@GetMapping( "/user/{id}" )
public UserDto getById( @PathVariable Long id ) {
return ・・・ // idで検索した結果をreturn
}
URIテンプレート
(補足)URIテンプレート	
•  URIの指定をテンプレート化する方法
–  一部が動的に変わるURIを指定
•  動的に変わる部分を{名前}の形式で指定
•  動的に変わる部分の値を容易に取得可能
–  指定例) 「http://foo.bar/{value}」
•  「http://foo.bar/123」や「http://foo.bar/456」等でアク
セス可能
•  「123」や「456」を「value」という名前で取得
35
(補足)URIテンプレートと値の取得	
•  {名前}の部分に該当するURI中の値を、引数として取得
–  引数に@PathVariableアノテーションを指定
–  引数名とテンプレート内の変数名を合わせる
@GetMapping("/foo/{value}")
public String method1(@PathVariable String value) {
// URLに「/foo/abc123」を指定した場合、valueには「abc123」が入る
・・・
}
36
PUT/DELETEの実装例	
•  PUTの例
•  DELETEの例
37
@PutMapping("/user/{id}")
public void put(@PathVariable Long id, @RequestBody UserDto user) {
・・・ // idに該当するユーザをuserの内容で更新
}
@DeleteMapping("/user/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void delete(@PathVariable Long id) {
・・・ // 指定されたidのユーザを削除
} レスポンスステータスコードの指定
(指定しない場合は200(OK))
POSTの実装例	
•  ResponseEntity
–  レスポンスのステータス行、ヘッダ、ボディを含むオブジェクト
–  レスポンスステータスコードやヘッダ等をメソッド内で指定したい場
合に使用する
•  POSTでは作成したリソースのURIをLocationヘッダに指定する	
38
@PostMapping("/user")
public ResponseEntity<Void> post(@RequestBody UserDto user) {
・・・	// ユーザを新規登録
return ResponseEntity.created( URIオブジェクト ).build();
}
(補足) URIオブジェクトは、UriComponentsBuilderを使用して作成すると良い
Spring MVC Test Frameworkを使ったテスト	
39
RestControllerのテスト	
•  Spring MVC Test Framework
•  Spring Bootのテストサポート機能
40
Spring MVC Test Framework	
•  Spring MVCのモック機能を提供する
–  Webアプリケーションサーバを使用することなく
RestControllerのテストが可能
•  MockMvcオブジェクトがエントリーポイントとなる	
41図はSpring Frameworkリファレンスマニュアルより引用
(https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html)	
Mock化!!
MockMvc単体テスト①	
•  テストクラス(JUnit)の作成	
42
public class MessageControllerTest {
private MockMvc mockMvc;
private MessageController target;
@Before
public void before() {
target = new MessageController();
mockMvc = MockMvcBuilders.standaloneSetup(target).build();
}
}
MockMvcの初期化	
Spring MVCのMockを実行するための
エントリーポイント
MockMvc単体テスト②	
•  テストメソッドの作成	
43
@Test
public void testCreateMessage() throws Exception {
mockMvc
.perform(
post("/message")
.contentType(MediaType.APPLICATION_JSON_UTF8)
.content("{¥"name¥": ¥"山田太郎¥"}"))
.andExpect(
status().isOk())
.andExpect(
content()
.json("{¥"message¥" : ¥"こんにちは、山田太郎さん¥"}", true))
.andDo(print());
}
リクエストの定義	
レスポンスの検証	
レスポンスの表示
(単体テストの観点では必須ではない)
(補足)MockMvc単体テストに必要なstatic import	
•  以下をstatic importしておく
–  MockMvcRequestBuilders.*
–  MockMvcResultHandlers.*
–  MockMvcResultMatchers.*	
44
MockMvc単体テスト with Spring Boot	
•  Spring Bootのテストサポート機能を使用
–  @Controller, @RestControllerがComponentScanの対象となり
、自動でDIコンテナに登録される
–  クラスを指定することで、対象クラスのみが登録される	
45
@RunWith(SpringRunner.class)
@WebMvcTest(MessageController.class)
public class MessageControllerTest {
@Autowired
private MockMvc mockMvc;
// テストメソッドは変更なし
Spring MVCの
モックが有効化される
MockMvcは
@Autowiredで取得できる
(補足)MockMvc結合テスト	
•  すべてのオブジェクトを結合した状態でテスト	
46
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class MessageControllerIntegrationTest {
@Autowired
private MockMvc mockMvc;
Spring MVCのMockが
有効になる
MockMvcは@Autowiredで取得できる
(補足)"NOT MockMvc"結合テスト	
•  Webコンテナを起動することが可能	
47
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class MessageControllerIntegrationTest {
@Autowired
private TestRestTemplate testRestTemplate;
Webコンテナが起動する
MockMvcの代わりに
TestRestTemplateを使用して実行する
※RANDOME_PORTの代わりにDEFINED_PORTを指定することも可能
※TestRestTemplateはテスト用のRestTemplate
48
ご清聴ありがとうございました
49
ライセンスについて	
•  JSUGマスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれを元にした派生
作品)の複製・頒布・表示・上演を認めます。	
•  非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認めます。 	
•  本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。

More Related Content

What's hot

Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Satoshi Kubo
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Taku Miyakawa
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)Koichiro Matsuoka
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説Masatoshi Tada
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
Spring超入門-Springと出会ってから1年半-
Spring超入門-Springと出会ってから1年半-Spring超入門-Springと出会ってから1年半-
Spring超入門-Springと出会ってから1年半-Ryosuke Uchitate
 
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) Hironobu Isoda
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...NTT DATA Technology & Innovation
 
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービューMasatoshi Tada
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話Daichi Koike
 
Form認証で学ぶSpring Security入門
Form認証で学ぶSpring Security入門Form認証で学ぶSpring Security入門
Form認証で学ぶSpring Security入門Ryosuke Uchitate
 
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門tsukasamannen
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 

What's hot (20)

Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
 
Spring AMQP × RabbitMQ
Spring AMQP × RabbitMQSpring AMQP × RabbitMQ
Spring AMQP × RabbitMQ
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
 
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
Spring超入門-Springと出会ってから1年半-
Spring超入門-Springと出会ってから1年半-Spring超入門-Springと出会ってから1年半-
Spring超入門-Springと出会ってから1年半-
 
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
 
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
Form認証で学ぶSpring Security入門
Form認証で学ぶSpring Security入門Form認証で学ぶSpring Security入門
Form認証で学ぶSpring Security入門
 
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 

Similar to Spring Fest 2018 Spring Bootで作るRESTful Web Service

REST with Spring Boot #jqfk
REST with Spring Boot #jqfkREST with Spring Boot #jqfk
REST with Spring Boot #jqfkToshiaki Maki
 
はじめての ASP.NET MVC
はじめての ASP.NET MVCはじめての ASP.NET MVC
はじめての ASP.NET MVCjz5 MATSUE
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介Shotaro Suzuki
 
SpringBootの研修本で学んだこと
SpringBootの研修本で学んだことSpringBootの研修本で学んだこと
SpringBootの研修本で学んだことiPride Co., Ltd.
 
Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッションYuichi Hasegawa
 
Selenium webdriver使ってみようず
Selenium webdriver使ってみようずSelenium webdriver使ってみようず
Selenium webdriver使ってみようずOda Shinsuke
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~normalian
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)Masanori Ishigami
 
かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう Shuhei Iitsuka
 
Spring bootでweb 基本編
Spring bootでweb 基本編Spring bootでweb 基本編
Spring bootでweb 基本編なべ
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験miso- soup3
 
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門Hironori Sekine
 
for Developer、 Microsoft Edge とInternet Explorer で 新しくサポートされるAPI
for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI
for Developer、 Microsoft Edge とInternet Explorer で 新しくサポートされるAPI Osamu Monoe
 
Android test tutorial
Android test tutorialAndroid test tutorial
Android test tutorialKazuaki Ueda
 
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~ShuheiUda
 
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2Atsuo Yamasaki
 
Angular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overviewAngular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overviewMitsuru Ogawa
 

Similar to Spring Fest 2018 Spring Bootで作るRESTful Web Service (20)

REST with Spring Boot #jqfk
REST with Spring Boot #jqfkREST with Spring Boot #jqfk
REST with Spring Boot #jqfk
 
はじめての ASP.NET MVC
はじめての ASP.NET MVCはじめての ASP.NET MVC
はじめての ASP.NET MVC
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
 
SpringBootの研修本で学んだこと
SpringBootの研修本で学んだことSpringBootの研修本で学んだこと
SpringBootの研修本で学んだこと
 
Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッション
 
Selenium webdriver使ってみようず
Selenium webdriver使ってみようずSelenium webdriver使ってみようず
Selenium webdriver使ってみようず
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
 
かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう
 
Spring bootでweb 基本編
Spring bootでweb 基本編Spring bootでweb 基本編
Spring bootでweb 基本編
 
20080524
2008052420080524
20080524
 
APIMeetup 20170329_ichimura
APIMeetup 20170329_ichimuraAPIMeetup 20170329_ichimura
APIMeetup 20170329_ichimura
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
 
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門
 
for Developer、 Microsoft Edge とInternet Explorer で 新しくサポートされるAPI
for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI
for Developer、 Microsoft Edge とInternet Explorer で 新しくサポートされるAPI
 
Android test tutorial
Android test tutorialAndroid test tutorial
Android test tutorial
 
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
 
Java EE8 Report
Java EE8 ReportJava EE8 Report
Java EE8 Report
 
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
 
Angular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overviewAngular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overview
 

Spring Fest 2018 Spring Bootで作るRESTful Web Service