Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
freee SDKs GA 祭り / freee-sdk-ga
Search
miyake
November 08, 2019
Technology
0
520
freee SDKs GA 祭り / freee-sdk-ga
freee Open Guild #06 freee SDK 特集 の セッション資料です
miyake
November 08, 2019
Tweet
Share
More Decks by miyake
See All by miyake
Cosmos DB で持続可能な RAG を実現しよう!~ AOAI Dev Day ふりかえりを添えて / Sustainable RAG with Cosmos DB with recap AOAI Dev Day
miyake
0
200
Mirroring Azure Cosmos DB in Microsoft Fabric
miyake
2
120
LLM 時代におさえておきたい Azure Serverless ファミリーまとめ / serverlessdaystokyo2023-llm-aoai
miyake
9
2.5k
Nuxt Studio を使ってみた / nuxt-studio-intro
miyake
1
590
Microsoft Build 2023 で発表された Cosmos DB の注目アップデート / Microsoft Build 2023 Cosmos DB update
miyake
1
770
祝 🎉 両方とも正式リリース! GitHub Codespaces と Nuxt3 で次世代開発体験 / codespaces-nuxt3
miyake
0
1.4k
Static Site Generator でサイト構築 / building sites with static site generator
miyake
1
280
Design and implementation of Cosmos DB Change Feed-centric architecture
miyake
0
890
Well-Architected Framework を活用した Azure 設計パターン / azure-well-architected-framework
miyake
2
1.3k
Other Decks in Technology
See All in Technology
AGIについてChatGPTに聞いてみた
blueb
0
130
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
470
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
TypeScript、上達の瞬間
sadnessojisan
46
13k
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
300
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
870
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
170
【若手エンジニア応援LT会】ソフトウェアを学んできた私がインフラエンジニアを目指した理由
kazushi_ohata
0
150
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
170
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
150
Featured
See All Featured
Navigating Team Friction
lara
183
14k
The World Runs on Bad Software
bkeepers
PRO
65
11k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Rails Girls Zürich Keynote
gr2m
94
13k
It's Worth the Effort
3n
183
27k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
What's in a price? How to price your products and services
michaelherold
243
12k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Statistics for Hackers
jakevdp
796
220k
GraphQLとの向き合い方2022年版
quramy
43
13k
Transcript
freee SDKs GA 祭り freee Open Guild #6「freee SDK特集」 1
SDK 開発メンバー 2
⽇本初の会計システム開発⽤SDK API エコノミーの推進、オープンプラットフォーム構想の⼀環として発表 公式発表資料 3
SDK リリース状況 GA = General Availability (正式リリース) 2019年11⽉8⽇時点 上記以外に、 JavaScript
SDK が Beta 版として存在 4
SDK の位置づけ 公開されている freee API を使いやすくする 開発環境から直接 freee API を操作できる
5
SDK 利⽤のメリットは︖ いつもの⾔語、いつもの開発環境から freee API を操作できる 社内Webアプリの機能から freee API を簡単に呼ぶことができる
freee の アプリストア にアプリケーションを公開しやすくする 6
SDK を利⽤すると SDK を利⽤しない場合 REST API の呼び出しを実⾏するコードを書く必要がある(⽅法は⾔語ごとに異なる) curl -X GET
"https://api.freee.co.jp/api/1/reports/trial_pl?company_id=3316&fiscal_year=2019" -H "accept: application/json" -H "Authorization: Bearer abcdefghijklmnopqrstuvwxyz01234567890xxxxxxxxxxxxxxxxxxxxx" SDK を利⽤(C#の場合) SDK で準備されているメソッドを実⾏するだけ(例: 試算表取得 GetTrialPlAsync ) var trialPl = await accountingClient.TrialBalance.GetTrialPlAsync(companyId, 2019); 7
SDK の開発で⼼がけたこと freee API スキーマに準拠 https://github.com/freee/freee-api-schema 各⾔語の流儀にしたがう SDK は公式パッケージマネージャから配布する $
dotnet add package Freee.Accounting.Sdk --version 1.0.0 <dependency> <groupId>jp.co.freee</groupId> <artifactId>freee-accounting-sdk</artifactId> <version>1.0.0</version> </dependency> 8
SDK 開発の流れ API からジェネレータで SDK を⽣成する SDK のソースコードは GitHub に公開
⽣成した SDK から⾃動でパッケージを公開 9
会計freee SDKs 10
会計freee SDK の構成(⾔語共通) GitHub で OSS として公開 ソースコード 各種サンプル README
サンプルの実⾏⽅法 導⼊⽅法、など Issueテンプレート コントリビューションガイド CI/CD コンフィグレーション 11
会計freee C# SDK 12
会計freee C# SDK freee/freee-accounting-sdk-csharp 13
SDKの⽣成(C#) C# のコードの⽣成に向いていた AutoRest を採⽤ 現⾏: 利⽤できる OpenAPI のバージョンは 2.x
まで 将来: OpenAPI 3.x 対応について検討中 14
パッケージ⽣成・公開(C#) C#のパッケージマネージャである NuGet で公開 Freee.Accounting.Sdk Freee.OAuth.AspNetCore Azure Pipelines を使って⾃動リリース︕ GitHubでリリースタグが設定されたら、ビルドし
NuGet へ登録 15
使い⽅(C#) サンプルコード コンソールアプリ x 4 ウェブアプリ ASP.NET Core MVC をベースにした実装⽅法を
README で解説 詳しくはGitHubリポジトリへ︕ 16
使い⽅(C#)コンソールサンプル 取得したアクセストークン を利⽤して実⾏ 17
使い⽅(C#)ウェブアプリサンプル ウェブアプリ向けには OAuth2 認証処理のライブラリも作成済み︕ 18
デモ(C#) by C#開発担当 @shibayan 19
会計freee Java SDK 20
会計freee Java SDK freee/freee-accounting-sdk-java 21
SDKの⽣成(Java) C# 版と同様に AutoRest を採⽤ 現⾏: OpenAPI 2.x から⽣成 将来:
C# 版と同様、いずれ OpenAPI 3.x 対応したい 22
パッケージ⽣成・公開(Java) Java のパッケージリポジトリである Maven セントラルリポジトリ で公開 jp.co.freee » freee-accounting-sdk Azure
Pipelines を使って⾃動ビルド、デプロイ GitHubでリリースタグが設定されたら、ビルドし Sonatype Nexus Repository Manager のステージングへデプロイ Sonatype で確認後、リリース 23
使い⽅(Java) サンプルコード コンソールアプリ ウェブアプリ Spring Boot をベースにした実装⽅法を README で解説 詳しくはGitHubリポジトリへ︕
24
使い⽅(Java)コンソールサンプル 取得したアクセストークン を利⽤して実⾏ 25
使い⽅(Java)ウェブアプリサンプル Spring Boot で、 OAuth2 認証および SDK による情報取得を実装 26
デモ(Java) by Java開発担当 @statemachine 27
会計freee PHP SDK Preview 28
会計freee PHP SDK freee/freee-accounting-sdk-php 29
SDKの⽣成(PHP) OpenAPI 3.x から⽣成したかったため、 OpenAPI Generator を採⽤ Swagger Codegen と⽐較の末、
freee API スキーマと相性の良いほうを採択 30
パッケージ公開(PHP) PHPのパッケージマネージャである Composer (Packagist) で公開 freee/freee-accounting-sdk (preview) GitHub でリリースタグを打つだけでリリース完了 初回に
GitHub hook に Packagist を登録するだけ 31
使い⽅(PHP) サンプルコード コンソールアプリ ウェブアプリ Laravel をベースにした実装⽅法を README で解説 詳しくはGitHubリポジトリへ︕ 32
使い⽅(PHP)コンソールサンプル 取得したアクセストークン を利⽤して、Laravel のコンソールアプリとして実⾏ 33
使い⽅(Java)ウェブアプリサンプル Laravel で、Socialite を利⽤した OAuth2 認証、および SDK による情報取得を実装 34
デモ(PHP) by 開発担当 @dz_ 35
ロードマップ 36
ロードマップ OpenAPI 3.x 対応(C#, Java) PHP SDK: 近⽇ GA 予定
勉強会、ハンズオンなどを通じて導⼊⽀援 37
ご清聴ありがとうございました︕ Let's API Economy! 38