freee SDKs GA 祭り / freee-sdk-ga

Ff7f1f76468f46a1c5c84b9238a4b162?s=47 miyake
November 08, 2019

freee SDKs GA 祭り / freee-sdk-ga

freee Open Guild #06 freee SDK 特集 の セッション資料です

Ff7f1f76468f46a1c5c84b9238a4b162?s=128

miyake

November 08, 2019
Tweet

Transcript

  1. freee SDKs GA 祭り freee Open Guild #6「freee SDK特集」 1

  2. SDK 開発メンバー 2

  3. ⽇本初の会計システム開発⽤SDK API エコノミーの推進、オープンプラットフォーム構想の⼀環として発表 公式発表資料 3

  4. SDK リリース状況 GA = General Availability (正式リリース) 2019年11⽉8⽇時点 上記以外に、 JavaScript

    SDK が Beta 版として存在 4
  5. SDK の位置づけ 公開されている freee API を使いやすくする 開発環境から直接 freee API を操作できる

    5
  6. SDK 利⽤のメリットは︖ いつもの⾔語、いつもの開発環境から freee API を操作できる 社内Webアプリの機能から freee API を簡単に呼ぶことができる

    freee の アプリストア にアプリケーションを公開しやすくする 6
  7. 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
  8. 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
  9. SDK 開発の流れ API からジェネレータで SDK を⽣成する SDK のソースコードは GitHub に公開

    ⽣成した SDK から⾃動でパッケージを公開 9
  10. 会計freee SDKs 10

  11. 会計freee SDK の構成(⾔語共通) GitHub で OSS として公開 ソースコード 各種サンプル README

    サンプルの実⾏⽅法 導⼊⽅法、など Issueテンプレート コントリビューションガイド CI/CD コンフィグレーション 11
  12. 会計freee C# SDK 12

  13. 会計freee C# SDK freee/freee-accounting-sdk-csharp 13

  14. SDKの⽣成(C#) C# のコードの⽣成に向いていた AutoRest を採⽤ 現⾏: 利⽤できる OpenAPI のバージョンは 2.x

    まで 将来: OpenAPI 3.x 対応について検討中 14
  15. パッケージ⽣成・公開(C#) C#のパッケージマネージャである NuGet で公開 Freee.Accounting.Sdk Freee.OAuth.AspNetCore Azure Pipelines を使って⾃動リリース︕ GitHubでリリースタグが設定されたら、ビルドし

    NuGet へ登録 15
  16. 使い⽅(C#) サンプルコード コンソールアプリ x 4 ウェブアプリ ASP.NET Core MVC をベースにした実装⽅法を

    README で解説 詳しくはGitHubリポジトリへ︕ 16
  17. 使い⽅(C#)コンソールサンプル 取得したアクセストークン を利⽤して実⾏ 17

  18. 使い⽅(C#)ウェブアプリサンプル ウェブアプリ向けには OAuth2 認証処理のライブラリも作成済み︕ 18

  19. デモ(C#) by C#開発担当 @shibayan 19

  20. 会計freee Java SDK 20

  21. 会計freee Java SDK freee/freee-accounting-sdk-java 21

  22. SDKの⽣成(Java) C# 版と同様に AutoRest を採⽤ 現⾏: OpenAPI 2.x から⽣成 将来:

    C# 版と同様、いずれ OpenAPI 3.x 対応したい 22
  23. パッケージ⽣成・公開(Java) Java のパッケージリポジトリである Maven セントラルリポジトリ で公開 jp.co.freee » freee-accounting-sdk Azure

    Pipelines を使って⾃動ビルド、デプロイ GitHubでリリースタグが設定されたら、ビルドし Sonatype Nexus Repository Manager のステージングへデプロイ Sonatype で確認後、リリース 23
  24. 使い⽅(Java) サンプルコード コンソールアプリ ウェブアプリ Spring Boot をベースにした実装⽅法を README で解説 詳しくはGitHubリポジトリへ︕

    24
  25. 使い⽅(Java)コンソールサンプル 取得したアクセストークン を利⽤して実⾏ 25

  26. 使い⽅(Java)ウェブアプリサンプル Spring Boot で、 OAuth2 認証および SDK による情報取得を実装 26

  27. デモ(Java) by Java開発担当 @statemachine 27

  28. 会計freee PHP SDK Preview 28

  29. 会計freee PHP SDK freee/freee-accounting-sdk-php 29

  30. SDKの⽣成(PHP) OpenAPI 3.x から⽣成したかったため、 OpenAPI Generator を採⽤ Swagger Codegen と⽐較の末、

    freee API スキーマと相性の良いほうを採択 30
  31. パッケージ公開(PHP) PHPのパッケージマネージャである Composer (Packagist) で公開 freee/freee-accounting-sdk (preview) GitHub でリリースタグを打つだけでリリース完了 初回に

    GitHub hook に Packagist を登録するだけ 31
  32. 使い⽅(PHP) サンプルコード コンソールアプリ ウェブアプリ Laravel をベースにした実装⽅法を README で解説 詳しくはGitHubリポジトリへ︕ 32

  33. 使い⽅(PHP)コンソールサンプル 取得したアクセストークン を利⽤して、Laravel のコンソールアプリとして実⾏ 33

  34. 使い⽅(Java)ウェブアプリサンプル Laravel で、Socialite を利⽤した OAuth2 認証、および SDK による情報取得を実装 34

  35. デモ(PHP) by 開発担当 @dz_ 35

  36. ロードマップ 36

  37. ロードマップ OpenAPI 3.x 対応(C#, Java) PHP SDK: 近⽇ GA 予定

    勉強会、ハンズオンなどを通じて導⼊⽀援 37
  38. ご清聴ありがとうございました︕ Let's API Economy! 38