Slide 1

Slide 1 text

OpenAPI Generator による API Client コードの完全⾃動⽣成 〜退屈な時間を有意義な時間に変えるために〜 2020.12.12 Developers Boost #6

Slide 2

Slide 2 text

岡⼭ 達哉 • Android App Developer • 株式会社ゆめみ(2019年11⽉⼊社) • 趣味は将棋 • Flutter で個⼈開発中(2⽉にリリース予定) blendthink

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

これまでの経歴 公 務 員 地 元 & ⼩ ( ) 会 社 , - .

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

本題に⼊る前に

Slide 7

Slide 7 text

正直...

Slide 8

Slide 8 text

題材ミスりました笑

Slide 9

Slide 9 text

1. 困った・苦労したこと 2. 考えた・⾏動したこと 3. 今後の⽅針について なので...

Slide 10

Slide 10 text

1. 困った・苦労したこと

Slide 11

Slide 11 text

1. 困った・苦労したこと こんな経験 ありませんか︖

Slide 12

Slide 12 text

1. 困った・苦労したこと どこが変更になったんだ.. いつのまにか仕様変わってる どこを変更したのか分からない⁉

Slide 13

Slide 13 text

1. 困った・苦労したこと こんなとき、ついつい 責めてしまってませんか︖

Slide 14

Slide 14 text

1. 困った・苦労したこと 仕様変更した時は ちゃんと⾔って︕ どこを変更したか 教えて︕ 変更箇所は 把握しといて︕

Slide 15

Slide 15 text

1. 困った・苦労したこと ⾔ってることは 正しい..

Slide 16

Slide 16 text

1. 困った・苦労したこと しかし

Slide 17

Slide 17 text

1. 困った・苦労したこと ⼈間は完璧ではありません

Slide 18

Slide 18 text

2. 考えた・⾏動したこと

Slide 19

Slide 19 text

2. 考えた・⾏動したこと 運⽤でカバーは したくないなぁ そもそも修正するの めんどくさいなぁ

Slide 20

Slide 20 text

2. 考えた・⾏動したこと そうだ

Slide 21

Slide 21 text

2. 考えた・⾏動したこと 責任はすべて プログラムに押し付けよう ⾃動化しよう︕

Slide 22

Slide 22 text

2. 考えた・⾏動したこと APIの変更の流れ サ ー バ ー 側 の 修 正 修 正 箇 所 の 連 絡 ク ラ イ ア ン ト 側 の 修 正

Slide 23

Slide 23 text

2. 考えた・⾏動したこと APIの変更の流れ サ " バ " 側 の 修 正 修 正 箇 所 の 連 絡 ク ラ イ ア ン ト 側 の 修 正 ⾃動化したい

Slide 24

Slide 24 text

2. 考えた・⾏動したこと ⾃動化するには..︖

Slide 25

Slide 25 text

2. 考えた・⾏動したこと APIの変更の流れ サ " バ " 側 の 修 正 修 正 箇 所 の 連 絡 ク ラ イ ア ン ト 側 の 修 正

Slide 26

Slide 26 text

2. 考えた・⾏動したこと GitHub Actions

Slide 27

Slide 27 text

2. 考えた・⾏動したこと

Slide 28

Slide 28 text

2. 考えた・⾏動したこと APIの変更の流れ サ " バ " 側 の 修 正 修 正 箇 所 の 連 絡 ク ラ イ ア ン ト 側 の 修 正

Slide 29

Slide 29 text

2. 考えた・⾏動したこと OpenAPI Generator

Slide 30

Slide 30 text

2. 考えた・⾏動したこと

Slide 31

Slide 31 text

2. 考えた・⾏動したこと こんな感じ API API Client • API の更新通知の受信 • API Client コードの⽣成 • API Client にプルリク作成

Slide 32

Slide 32 text

2. 考えた・⾏動したこと 試してみた

Slide 33

Slide 33 text

2. 考えた・⾏動したこと API のリポジトリ https://github.com/blendthink/linkmark-api

Slide 34

Slide 34 text

2. 考えた・⾏動したこと API Client のリポジトリ https://github.com/blendthink/linkmark-android

Slide 35

Slide 35 text

2. 考えた・⾏動したこと

Slide 36

Slide 36 text

2. 考えた・⾏動したこと めっちゃ便利︕

Slide 37

Slide 37 text

3. 今後の⽅針について

Slide 38

Slide 38 text

3. 今後の⽅針について 実は、、

Slide 39

Slide 39 text

3. 今後の⽅針について 課題が⼭積み

Slide 40

Slide 40 text

3. 今後の⽅針について そもそも、、 API仕様書がない

Slide 41

Slide 41 text

3. 今後の⽅針について API仕様書が Git管理されてない

Slide 42

Slide 42 text

3. 今後の⽅針について GitHub Actions をいじれない 権限が必要じゃ

Slide 43

Slide 43 text

3. 今後の⽅針について OpenAPI Generator で未対応の部分がある

Slide 44

Slide 44 text

3. 今後の⽅針について Retrofit X Coroutine X Kotlinx Serialization 例えば API Client コードが、まだこの組み合わせで⾃動⽣成できない

Slide 45

Slide 45 text

3. 今後の⽅針について

Slide 46

Slide 46 text

3. 今後の⽅針について 今後の⽅針

Slide 47

Slide 47 text

3. 今後の⽅針について できるだけ⾃動化する

Slide 48

Slide 48 text

最後に

Slide 49

Slide 49 text

前提を疑うこと は⼤切 それって⼈がやることなの︖

Slide 50

Slide 50 text

社内の OJT チャンネルガイドライン

Slide 51

Slide 51 text

いかがでしたでしょうか︖

Slide 52

Slide 52 text

皆さんの退屈な時間を 少しでも有意義な時間に できていれば幸いです

Slide 53

Slide 53 text

ご清聴ありがとうございました

Slide 54

Slide 54 text

参考 • https://openapi-generator.tech/ • https://github.co.jp/features/actions • https://www.irasutoya.com • https://qiita.com/warahiko/items/3676f1164f4619e8debc • https://qiita.com/n_komiya/items/8310fdb7e2002e89eb13