Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Swagger Codegenで楽にSwiftのModelを生成する / Easily generate Swift Models with Swagger Codegen

Swagger Codegenで楽にSwiftのModelを生成する / Easily generate Swift Models with Swagger Codegen

DeNA×STORES×ラクマ iOS Meetup!!
2023-05-22 19:00-
https://connpass.com/event/283989/

More Decks by Naoki / ばくぷー (ᐡ• ﻌ • ᐡ)。

Other Decks in Programming

Transcript

  1. Swagger Codegenで
    楽にModelを生成する
    @naoki-mrmt
    DeNA×STORES×ラクマ
    iOS Meetup!!

    View Slide

  2. Naoki / ばくぷー (• ﻌ • )。
    & @naoki_mrmt
    & 株式会社マンハッタンコード 22卒
    & Swift ( / Kotlin / Flutter )
    & No beer, no life.

    View Slide

  3. Contents Swagger Codegenとは?
    Swaggerとは?
    事前準備
    Modelの生成
    まとめ
    1
    2
    3
    4
    5

    View Slide

  4. Contents Swagger Codegenとは?
    Swaggerとは?
    事前準備
    Modelの生成
    まとめ
    1
    2
    3
    4
    5

    View Slide

  5. 1 Swagger Codegenとは?
    OpenAPI仕様に沿って記述されたAPI
    仕様書をインプットとしてソースコー
    ドを生成するツール
    v SwiftだけでなくDartやKotlinなど
    多くの言語で出力することができる

    View Slide

  6. Contents Swagger Codegenとは?
    Swaggerとは?
    事前準備
    Modelの生成
    まとめ
    1
    2
    3
    4
    5

    View Slide

  7. 2 Swaggerとは?
    APIの設計と文書化を支援するためのオープンソースのツール
    Open API Editor UI Codegen
    REST APIを定義
    するための標準仕

    API仕様を書くた
    めのエディタ

    - yaml/jsonで記述
    API仕様からド
    キュメントを生成
    するツール
    API仕様から
    コードを生成す
    るツール

    View Slide

  8. Contents Swagger Codegenとは?
    Swaggerとは?
    事前準備
    Modelの生成
    まとめ
    1
    2
    3
    4
    5

    View Slide

  9. 3 事前準備
    8 Swagger Codegenの導"
    brew install swagger-codege&
    8 Swaggerファイル

    View Slide

  10. 3 事前準備
    Swaggerファイルがない場合"
    A 作るしかない..
    A ただ、yamlは書きたくない...

    View Slide

  11. 3 事前準備
    Stoplight Studiv
    i OpenAPIのyamlファイルの作成と管理ができるGUIエディ4
    i 直接yamlファイルの編集も可
    i GUIでyamlを作成してmock serverの立ち上げる一連の流れがさっとできE
    i StoplightのPrismを使うと簡単

    View Slide

  12. 3 事前準備

    View Slide

  13. 3 事前準備

    View Slide

  14. 3 事前準備

    View Slide

  15. 3 事前準備

    View Slide

  16. Contents Swagger Codegenとは?
    Swaggerとは?
    事前準備
    Modelの生成
    まとめ
    1
    2
    3
    4
    5

    View Slide

  17. 4 Modelの生成
    E コマンドを叩くとファイルが生成
    され#
    E swagger-codegen generate -i
    {yaml file name} --lang swift5 -o
    output

    View Slide

  18. 4 Modelの生成
    B 以下のディレクトリにModelが
    生成され$
    B SwaggerClient/Classes/
    Swaggers/Models

    View Slide

  19. 4 Modelの生成
    注意Y
    yaml上のModel名に依存してstruct名などがつけられ$
    Codableで生成され$
    変数名などを適宜修正する必要があるかも

    View Slide

  20. Contents Swaggerとは?
    Swagger Codegenとは?
    事前準備
    Modelの生成
    まとめ
    1
    2
    3
    4
    5

    View Slide

  21. 5 まとめ
    Swagger Codegenで楽にModelが作れる
    自動生成だけあって手直しは必要
    yamlがなくてもGUIで作ることができる
    r コマンドを打つだけで生成される
    r Codableで生成されるなど
    r Stoplight Studio

    View Slide

  22. Thank you for

    your attention.

    View Slide