Slide 1

Slide 1 text

Swift OpenAPI Generator Swift OpenAPI Generator の使い方 5分でわかる!!! 5分でわかる!!! L G T M し と こ ヮラ

Slide 2

Slide 2 text

(株)マンハッタンコード22卒 Swift ( / Kotlin / Flutter ) ビール好き ABOUT ME Naoki ばくぷー (• ﻌ • )。

Slide 3

Slide 3 text

既存のOpenAPIファイルを使って ソースを生成するツールでの 困りごと

Slide 4

Slide 4 text

困りごと CLIでソースを生成し プロジェクトに入れ込む必要がある 1 OpenAPI形式のファイルの更新があるごとに CLIでソースを再生成してコミットをする必要がある 2

Slide 5

Slide 5 text

持ち帰って 欲しいこと

Slide 6

Slide 6 text

Xcode内でコード生成が完結するので生成されたコードを入れ込む手間がなくなり より簡単にAPI通信ができる OpenAPI形式のファイル定義に沿って ビルド時にAPIリクエストのソースコードが生成される DerivedData内にコード生成されるためコミットが不要 持ち帰って欲しいこと SwiftOpenAPIGeneratorを使うと

Slide 7

Slide 7 text

Swift OpenAPI Generatorとは? WWDC23で発表 Appleが提供しているSwiftパッケージプラグイン OpenAPI形式のファイルをインプットに HTTP呼び出しを実行するクライアントコード or サーバーコードを 生成してくれるツール

Slide 8

Slide 8 text

Swift OpenAPI Generatorの使い方 以下をSPMで追加すH 2 apple/swift-openapi-generato# 2 apple/swift-openapi-runtim) 2 apple/swift-openapi-urlsession

Slide 9

Slide 9 text

Swift OpenAPI Generatorの使い方 Build PhaseのRun Build Tool Plug-insにOpenAPIGeneratorを追加する

Slide 10

Slide 10 text

Swift OpenAPI Generatorの使い方 - ファイルの追加 インプットとなるファイルを2種類追加すU V OpenAPI形式のファイル:openapi.yaml or openapi.jsoP V 生成するコードを定義するファイル:openapi-generator-config.yaml ⚠️ ファイル名が決まっているので
 名前が違うと読み込まれない

Slide 11

Slide 11 text

Swift OpenAPI Generatorの使い方 ビルドす@ q 初回ビルド時にはpluginを信頼する必要がある DerivedData内に以下が生成され@ q Types.swif‡ q Client.swift OpenAPI形式のファイルが更新された時には
 ビルドをし直すだけで生成コードが更新される

Slide 12

Slide 12 text

Swift OpenAPI Generatorの使い方 - 実際にAPIを呼び出す importす6 4 OpenAPIRuntimC 4 OpenAPIURLSession

Slide 13

Slide 13 text

Swift OpenAPI Generatorの使い方 - 実際にAPIを呼び出す Client型を初期化す“ • 引数にサーバーURLとHTTPライブラリを指W • Servers.server1()は自動生成された関 • OpenAPI形式のファイルで定義したURLが返ってく“ • 今回はmockAPIのURL

Slide 14

Slide 14 text

Swift OpenAPI Generatorの使い方 - 実際にAPIを呼び出す リクエストとレスポンス用のソースコードを記載すE F responseはenumで定義されている

Slide 15

Slide 15 text

Swift OpenAPI Generatorの使い方 - 実際にAPIを呼び出す 関数を呼び出すと以下のようにjsonが返ってくる

Slide 16

Slide 16 text

Swift OpenAPI Generatorを使う上で気をつけること OpenAPI Docの各項目の
 descriptionを必ず記載する 1 各APIのoperationIdを設定する 2

Slide 17

Slide 17 text

Swift OpenAPI Generatorを使う上で気をつけること OpenAPI Docの各項目のdescriptionを必ず記載すT a Summaryにdescriptionの内容が反映されT a URL呼び出しで言うとserver1(7 a server1()と言う関数名については自動生成されたもの

Slide 18

Slide 18 text

Swift OpenAPI Generatorを使う上で気をつけること 各APIのoperationIdを設定すB A operationIdが関数名になり呼び出す時に使用されB A OpenAPIGeneratorを使う上で必須の項目

Slide 19

Slide 19 text

Swift OpenAPI Generatorを 使った時の 詰まりどころ

Slide 20

Slide 20 text

Swift OpenAPI Generatorを使った時の詰まりどころ  yamlのタイポに気付けず生成成功までに時間がかかっT  openapi-generator-config.yamp  Xcodeの該当行にエラー表示があるわけではない

Slide 21

Slide 21 text

Swift OpenAPI Generatorを使った時の詰まりどころ x yamlのタイポに気付けず生成成功までに時間がかかっe x OpenAPI形式のファイルを作る際にはGUIを使うと検知できP x Stoplight Studig x 設定ファイルについては良い方法があれば教えてください...

Slide 22

Slide 22 text

まとめ

Slide 23

Slide 23 text

SwiftOpenAPIGeneratorを使うと Xcode内でコード生成が完結するので
 生成されたコードを入れ込む手間がなくなる
 →より簡単にAPI通信ができる 1 OpenAPI形式のファイル定義に沿って
 ビルド時にAPIリクエストのソースコードが生成される →DerivedData内にコード生成されるため
  コミットが不要 2

Slide 24

Slide 24 text

ご清聴ありがとうございました!! @naoki_mrmt 飲みのお誘いは マンハッタンコードHPの問い合わせ またはXのDMで受付中!!! iOSDC たのしも♡