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
470
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
Mirroring Azure Cosmos DB in Microsoft Fabric
miyake
2
67
LLM 時代におさえておきたい Azure Serverless ファミリーまとめ / serverlessdaystokyo2023-llm-aoai
miyake
9
2.3k
Nuxt Studio を使ってみた / nuxt-studio-intro
miyake
1
430
Microsoft Build 2023 で発表された Cosmos DB の注目アップデート / Microsoft Build 2023 Cosmos DB update
miyake
1
700
祝 🎉 両方とも正式リリース! GitHub Codespaces と Nuxt3 で次世代開発体験 / codespaces-nuxt3
miyake
0
1.3k
Static Site Generator でサイト構築 / building sites with static site generator
miyake
1
250
Design and implementation of Cosmos DB Change Feed-centric architecture
miyake
0
820
Well-Architected Framework を活用した Azure 設計パターン / azure-well-architected-framework
miyake
2
1.3k
2020 年下半期 Cosmos DB の更新まとめ
miyake
0
560
Other Decks in Technology
See All in Technology
AOAI Dev Day - Opening Session
yoshidashingo
2
430
MySQLのロックの種類とその競合
yoku0825
6
1.6k
RAGのサービスをリリースして1年3ヶ月が経ちました
segavvy
4
900
Git 研修 Advanced【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
200
Docker互換のセキュアなコンテナ実行環境「Podman」超入門
devops_vtj
6
3.2k
サーバーレスAPI(API Gateway+Lambda)とNext.jsで 個人ブログを作ろう!
shuntaka
PRO
0
560
エンジニア向け会社紹介資料
caddi_eng
14
220k
累計ダウンロード数1億8000万を超えるアプリケーションプラットフォームのレガシーシステム脱却とモダン化への道
kmitsuhashi
0
120
20240717_イケコパ代表Copilot_in_Teams会社でこう使ってます
ponponmikankan
2
430
Luupの開発組織におけるインシデントマネジメントの変遷 ver.RoadtoSRENEXT2024
grimoh
1
270
さらに高品質・高速化を目指すAI時代のテスト設計支援と、めざす先 / AI Test Lab vol.1
shift_evolve
0
190
初中級者用如何使用backlog -VALE TUDOEDITION-
in0u
0
140
Featured
See All Featured
Statistics for Hackers
jakevdp
792
220k
The Straight Up "How To Draw Better" Workshop
denniskardys
229
130k
The Pragmatic Product Professional
lauravandoore
29
6.1k
Six Lessons from altMBA
skipperchong
24
3.2k
Pencils Down: Stop Designing & Start Developing
hursman
118
11k
Side Projects
sachag
451
42k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
105
6.8k
In The Pink: A Labor of Love
frogandcode
139
22k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
What's new in Ruby 2.0
geeforr
338
31k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
35
6.3k
Mobile First: as difficult as doing things right
swwweet
219
8.8k
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