Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
会計 freee SDK の 開発プロセスとアーキテクチャ /freee biztechfro...
Search
miyake
February 05, 2020
Technology
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
会計 freee SDK の 開発プロセスとアーキテクチャ /freee biztechfrontier2020 miyake
Biz Tech Frontier 2020 のセッション資料です
miyake
February 05, 2020
More Decks by miyake
See All by miyake
Azure Serverless 2026:Production-ready な AI エージェント基盤 / Azure Serverless 2026: Production-Ready AI Agent Platform
miyake
2
840
Serverless Agent Architecture on Azure / serverless-agent-on-azure
miyake
1
350
Azure Serverless × AI Agent × MCP アーキテクチャ最前線 / Azure Serverless Agent Architecture
miyake
15
5.3k
Cosmos DB で持続可能な RAG を実現しよう!~ AOAI Dev Day ふりかえりを添えて / Sustainable RAG with Cosmos DB with recap AOAI Dev Day
miyake
1
450
Mirroring Azure Cosmos DB in Microsoft Fabric
miyake
2
380
LLM 時代におさえておきたい Azure Serverless ファミリーまとめ / serverlessdaystokyo2023-llm-aoai
miyake
9
3.2k
Nuxt Studio を使ってみた / nuxt-studio-intro
miyake
1
1.3k
Microsoft Build 2023 で発表された Cosmos DB の注目アップデート / Microsoft Build 2023 Cosmos DB update
miyake
1
970
祝 🎉 両方とも正式リリース! GitHub Codespaces と Nuxt3 で次世代開発体験 / codespaces-nuxt3
miyake
0
1.6k
Other Decks in Technology
See All in Technology
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
2
280
Rust で関数型ドメインモデリング
takonda
0
140
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
380
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
7
6k
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.4k
PHPカンファレンス関西の招待状 / Invitation to PHP Conference Kansai
ykanoh
0
110
遠藤な_めぐろLT #38 「社内のAI活用推進」@麻布台_20261009
endonanana
0
130
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
440
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
4
1.4k
hackers_champloo_2026_tidb
makocchi
0
160
PagerDuty Tech Hub-鳴らすけれど、人は動かない
ezaki
0
170
サブエージェントと Claude Mods で作る独自 Advisor ツールの話
kenichiodo
2
160
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
7.2k
The SEO identity crisis: Don't let AI make you average
varn
0
590
The browser strikes back
jonoalderson
0
1.8k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
560
Building the Perfect Custom Keyboard
takai
2
910
Un-Boring Meetings
codingconduct
0
460
KATA
mclloyd
PRO
35
16k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
890
Odyssey Design
rkendrick25
PRO
2
870
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
500
Chasing Engaging Ingredients in Design
codingconduct
0
360
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
270
Transcript
会計 freee SDK の 開発プロセスとアーキテクチャ Biz Tech Frontier 2020 Kazuyuki
Miyake 1
About Me 三宅 和之 @kazuyukimiyake 株式会社ゼンアーキテクツ CTO Community Microsoft MVP(for
Microsoft Azure) Vue.js-JP コアスタッフ TypeScript-jp コアスタッフ OSS freee SDK OSS メンテナー Smart Store OSS メンテナー 2
Agenda 1. 会計freee SDKについて 2. 会計freee SDK のアーキテクチャ 3. 会計freee
SDK の開発プロセス ※ 以降のページでは 「freee SDK」 と表現させていただきます 3
会計freee SDK について 4
日本初の会計システム開発用SDK API エコノミーの推進、オープンプラットフォーム構想の一環として開発 公式発表資料 5
SDK リリース状況 2019年11月に正式リリース C#, Java, PHP 用をラインナップ V2 がまもなくリリース予定(OpenAPI 3.0
対応バージョン) 上記以外に、 JavaScript SDK が Beta 版として存在 6
SDK の位置づけ 公開されている freee API スキーマ を 使いやすく する 好みの開発環境
から 直接 freee API を操作できる 7
SDK の利用シーンとメリット 社内アプリ と統合し、独自機能から freee API を呼ぶことができる freee の アプリストア
にアプリケーションを公開しやすくする 8
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); 9
SDK の使い方 基本的な使い方 1. 言語別のパッケージマネージャから「公式 freee accounting SDK」を導入する 2. 認証情報を取得しアプリに設定する
3. 利用したい API に対応するメソッドをライブラリから選択して実装するだけ ライブラリの導入 $ composer require freee/freee-accounting-sdk $ dotnet add package Freee.Accounting.Sdk --version 1.0.0 10
SDK の詳しい使い方は? GitHub に詳細な導入手順書とサンプルがあります! C#: https://github.com/freee/freee-accounting-sdk-csharp Java: https://github.com/freee/freee-accounting-sdk-java PHP: https://github.com/freee/freee-accounting-sdk-php
11
Version 2.x を絶賛開発中! Open API 3.0 に完全準拠 Swagger 2.0 ベースのスキーマメンテナンスが不要に
ソースコード生成を OpenAPI Generator に統一 言語ごとの生成検証やカスタマイズが不要に SDK リリースのリードタイム短縮化 CI/CD 導入による自動化により、API 更新からのリードタイムが短縮 v2.0.0-alpha としてプレリリース済み 12
freee SDK のアーキテクチャ 13
freee SDK の全体構成 14
SDK のアーキテクチャ基本方針 1. freee API スキーマに準拠 2. 各言語の流儀にしたがう 3. SDK
は OSS として GitHub に公開する 4. SDK は公式パッケージマネージャから配布する 5. 課題やノウハウは企業やコミュニティにフィードバックする 15
freee API スキーマに準拠 free API スキーマ: https://github.com/freee/freee-api-schema API と SDK
で仕様に差異がない 16
各言語の流儀に従う メソッドのシグニチャ(例: 事業所一覧の取得 GET: /api/1/companies ) C#: CompaniesIndexResponse GetCompanies ()
Java: Observable<CompaniesIndexResponse> getCompanies() PHP: getCompanies() サンプル Web アプリの利用フレームワーク C#: ASP.NET Core MVC/WebAPI Java: Spring Boot PHP: Laravel 17
SDK は OSS として GitHub にて公開 SDK ソース、サンプルコード、Issues、Pull Request、ガイドライン 特に
PHP 版は活発にコントリビューターとのやりとりが行われている 18
SDK は公式パッケージマネージャから配布 freee SDK を開発ライブラリとしてスムーズに導入可能 各言語別のパッケージマネージャに対応 C#: NuGet Java: MVN
Repository PHP: Composer 19
freee SDK の開発プロセス 20
SDK リリースまでの道のり freee 社からSDK開発基本方針とベースとなる API スキーマを受領 GitHub 上に リポジトリを作成し、OSS として開発開始
SDK ソースコードの生成方法検証(多くのトライ & エラーあり) Issue の明確化とフィードバック 関連するコミュニティへのコントリビュート v1.0 リリース v2.0 開発 ← イマココ 21
SDK の開発フロー 22
OSS としての開発スタイルを徹底 各言語別のスペシャリストがコミッターとしてリード 言語間の全体整合性や freee 社との調整はメンテナーがとりまとめ ある言語で先行実装し、他の言語にフィードバックして効率化 1.0: C# を先行させ、Java
と PHP に展開 2.0: Java を先行させ、他言語に展開 基本は Issue や PR でコミュニケーション 検証段階は Slack も併用 打ち合わせはほぼ不要(月1のテレカン程度) 23
スペシャルチームの結成 各言語のスペシャリストとOSS開発経験者をコミッターとしてアサイン 24
freee 社へのフィードバック freee 社 API スキーマへの Issue 登録 SDK 開発を通じて、人間の目では分かりにくい
API の細かい仕様を調整 型に厳しい言語で SDK を開発したため、API 側の精度向上に貢献できた 25
外部へのコントリビュート Open API Generator への PR 発行 開発が遅れていた C# の
OpenAPI Generator に多くの PR を発行し貢献 C# メンテナの shibayan が technical committee に招待された! 26
OpenAPI Generator のサイトにロゴが掲載! 27
freee SDK 開発で得られたこと API スキーマから複数言語のソースコードを生成するノウハウ 会計以外のアプリと freee の機能を融合できる可能性 企業 x
エンジニア x コミュニティ の融合プロジェクト形式が とても良く機能すること freee の機能が豊富であることを API 仕様からあらためて実感! 28
ご清聴ありがとうございました 29