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
210
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
600
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
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
230
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
420
AI前提のサービス運用ってなんだろう?
ryuichi1208
8
1.4k
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
150
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
150
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
Zennのパフォーマンスモニタリングでやっていること
ryosukeigarashi
0
130
AIチャットボット開発への生成AI活用
ryomrt
0
170
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
190
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
9
1.1k
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
650
Featured
See All Featured
Become a Pro
speakerdeck
PRO
25
5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Writing Fast Ruby
sferik
627
61k
A designer walks into a library…
pauljervisheath
204
24k
Six Lessons from altMBA
skipperchong
27
3.5k
BBQ
matthewcrist
85
9.3k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Code Review Best Practice
trishagee
64
17k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
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