Slide 1

Slide 1 text

Princess APIのAPIクライアントを TypeScriptで作ってnpmで公開し てみた IM@S Engineer MeetUp REBURN うーたん

Slide 2

Slide 2 text

自己紹介

Slide 3

Slide 3 text

うーたんです ● 名前 ○ うーたん ○ 大森裕介 ● 副業は新卒サーバーサイドエンジニア ● 矢吹 可奈を担当

Slide 4

Slide 4 text

SNS ● Twitter ○ @uutan1108 ● GitHub ○ OHMORIYUSUKE

Slide 5

Slide 5 text

参加したきかけ

Slide 6

Slide 6 text

今回、初参加です! 大学2年のころのイベントに参加したかったが参加でき なかった。今回は、3年前よりレベルアップしたのでオフ ラインで参加!!

Slide 7

Slide 7 text

作ったもの

Slide 8

Slide 8 text

TypeScriptでAPIクライアントを作っ た ● Princess — Public REST APIの TypeScriptのAPIクライアント ● ひたすら型定義をしてテストをたく さん書いた ● Princess — Public REST APIは アイドルの情報が取得できる WEB API https://github.com/OHMORIYUSUKE/princess-api -sdk/tree/main

Slide 9

Slide 9 text

Princess — Public REST API ● アイドルの情報やゲームの イベント情報が取得できる ● 20個以上のエンドポイント

Slide 10

Slide 10 text

モチベーション 1. イベントをconpassで発見する 2. 何か作って発表したい!! 3. 前に使ったことがあるアイマス関連のAPIクライアントを作ろ う! 4. どうせならnpmに公開したい(公開するのムズそう) 5. テストも書きたいし、ドキュメントも書きたい 6. そして、自分で作ったnpmパッケージを使って満足感を感じた い!

Slide 11

Slide 11 text

実装

Slide 12

Slide 12 text

これだけでnpmにリリースできた ● semantic-release ○ パッケージ公開 ○ バージョン管理 ○ リリースノートの作成を自動化

Slide 13

Slide 13 text

テストをChatGPTに教わりな がら書いた ● GPTに構造体を教えて、テ ストを書いてと頼んだら書い てくれる。 ● 勝手に謎のパッケージを定 義してくるので注意してあげ た ● JSONから構造体も作ってく れる

Slide 14

Slide 14 text

おしゃれなドキュメント(typedoc) ● READMEをおしゃれに表示してくれる ● コードに書き込んだ メソッドのコメントを ドキュメントに変換

Slide 15

Slide 15 text

感想

Slide 16

Slide 16 text

感想 ● 意外と簡単にnpmに公開できた ● ひたすら型を定義するのは辛い ● エンドポイントが多くて実装が間に合わなかった ● ChatGPTにJSONを教えて型を作ってもらうとサボれる ● TestもChatGPTに質問しながら書いた(Testを書いたの初めて かも)

Slide 17

Slide 17 text

package.jsonに名前が入るのがいい ● Node.jsのパッケージ(ライブラリ)管理ファイルに自分のパッ ケージ名が書き込まれる嬉しさ ● importするたびに感じる 「npmからインストール したパッケージだぁ」感

Slide 18

Slide 18 text

完成させられなかったけ ど、npmにも公開できた し、テストも書けた、ド キュメントも書けたし、よ し!

Slide 19

Slide 19 text

次にやりたいこと

Slide 20

Slide 20 text

色々なところに表示してるアイドルの誕生日を自分のパッケージに変更 する ● 今回、公開したパッケージでアイドルの情報を取得して 各ページに誕生日を表示したい! ホームページ GitHubトップ

Slide 21

Slide 21 text

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