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
440
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
LLM 時代におさえておきたい Azure Serverless ファミリーまとめ / serverlessdaystokyo2023-llm-aoai
miyake
8
2.1k
Nuxt Studio を使ってみた / nuxt-studio-intro
miyake
0
300
Microsoft Build 2023 で発表された Cosmos DB の注目アップデート / Microsoft Build 2023 Cosmos DB update
miyake
1
610
祝 🎉 両方とも正式リリース! GitHub Codespaces と Nuxt3 で次世代開発体験 / codespaces-nuxt3
miyake
0
1.2k
Static Site Generator でサイト構築 / building sites with static site generator
miyake
1
230
Design and implementation of Cosmos DB Change Feed-centric architecture
miyake
0
770
Well-Architected Framework を活用した Azure 設計パターン / azure-well-architected-framework
miyake
2
1.2k
2020 年下半期 Cosmos DB の更新まとめ
miyake
0
550
Front-end web applications with Azure Static Web Apps
miyake
0
520
Other Decks in Technology
See All in Technology
自動生成を活用した、運用保守コストを抑える Error/Alert/Runbook の一元集約管理 / Centralized management of Error/Alert/Runbook to minimize operational costs using automated code generation
biwashi
9
2.1k
入社後初めてのタスクでk8sアップグレードした話.pdf
kkato1
1
380
SIEMを用いて、セキュリティログ分析の可視化と分析を実現し、PDCAサイクルを回してみた
coconala_engineer
0
220
インシデントレスポンスのライフサイクルを廻すポイントってなに / Pinpoints of Incidentresponse Lifecycle for Operation
sakaitakeshi
1
300
強みを伸ばすキャリアデザイン
yug1224
0
200
Tebiki株式会社 エンジニア採用資料
tebiki
0
4.1k
o11y入門_外形監視を利用したWebアプリケーションへの最適なモニタリング_TechBrew
k5k
3
100
オーナーシップを持つ領域を明確にする
konifar
11
2.6k
Next'24 事例セッションの紹介とクラウド資格を活用したキャリア形成について語りMuscle
yasumuusan
1
340
「手動オペレーションに定評がある」と言われた私が心がけていること / phpcon_odawara2024
blue_goheimochi
2
320
「ふりかえりのふりかえり」をふりかえり、実のあるふりかえりにする
naitosatoshi
0
220
プロデザ! BY リクルート vol.18_リクルートのリサーチ実践組織「リサーチブーストコミュニティ」
recruitengineers
PRO
3
240
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
50
8.6k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
Product Roadmaps are Hard
iamctodd
43
9.7k
For a Future-Friendly Web
brad_frost
171
8.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
6
990
Art, The Web, and Tiny UX
lynnandtonic
288
19k
Designing with Data
zakiwarfel
95
4.8k
RailsConf 2023
tenderlove
2
530
Making Projects Easy
brettharned
108
5.5k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Music & Morning Musume
bryan
41
5.6k
GraphQLとの向き合い方2022年版
quramy
31
12k
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