Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

Tesla のデータをAPI経由で定期的に Google BigQueryに連携し分析できるようにする:CDataSync

前回の記事で Tesla API の Mock Serverを作ったんですが、作っただけじゃツマラナイので色々と妄想を膨らませて、試してみようと思います。

kageura.hatenadiary.jp

f:id:sugimomoto:20200121114916p:plain

先の記事でも解説しているんですが、Tesla API はおよそ200項目におよぶ大量の車両データ・センサーデータを取得することができます。

バッテリーのチャージ状況から、シートヒーターの稼働、近くの充電サイトまで取得することができます。

なので、このデータを使って、BIツールで分析したいな! というのが最初の狙いでした。

  • 分析を行うために Tesla API の難しいところ
  • こんな風にできた
  • 必要なもの
    • REST データ処理用 RSDファイルの作成
    • Google BigQuery の準備
    • CDataSyncのインストール
    • REST データソースの設定
    • BigQueryへの同期先設定
    • ジョブの作成
    • テスト実行
    • Google Data Portal でビジュアライズ
  • さいごに
続きを読む

Tesla API が触りたいけれど、車が高くて買えないので、Tesla API の Mock API Server を作って、擬似的に Tesla を所有している感覚を API で体験する

Tesla ご存知ですか? そう、あの Tesla です。最近日本でも Model 3が出始めて、人気沸騰中(だと個人的に思っている)の電気自動車のことです。

https://www.tesla.com/ja_jp

f:id:sugimomoto:20200120222922p:plain

続きを読む

JSON から OpenAPI(Swagger) Spec のモデルを生成するのに「Swagger toolbox」が便利

OpenAPI(Swagger)Spec を書いていて、真っ先に面倒かつ苦痛なのが Model 部分の定義だと思います。

予め OpenAPI Spec を生成するように Web API側を定義していたりすれば、話は別ですが API Design First で構成していく場合、大量の定義をYAMLで書いていかないといけません。 また、すでに存在しているWeb APIからOpen API Specを書き起こす、みたいなプロジェクトの場合も同様ですね。

そんな苦痛な Model 生成が「Swagger toolbox」というWebアプリで一層(半分くらい)できるのでオススメです。

swagger-toolbox.firebaseapp.com

f:id:sugimomoto:20200118192849p:plain

使い方は簡単です。左側に Model を生成したいJSONを貼り付けて「Convert」をクリックするだけ。

もし、Example を含めたい場合は「Include the example to the output」にチェックを入れればOK。

素晴らしい。

OpenAPI(Swagger) Spec のバージョンを 3.0 から 2.0 に変換したい:API MATIC を試してみた

2.0 から 3.0 に上げたいならまだしも、3.0 から 2.0 に下げたい? 何をバカなことを言っているのだ? と思われるかもしれないんですがちゃんとした理由がありまして

PowerApps のカスタムコネクタが OpenAPI Spec から生成できるんですが、現在 2.0 しかサポートしていないんですね。

docs.microsoft.com

でも、私が個人的に作っていた API が OpenAPI Spec 3.0 なのですね。(わかってたのにー (ノシ 'ω')ノシ バンバン)

なので、変換できるツール無いかなーと探していたら、ありました!

API MATIC

API MATIC」という API定義から各言語のSDKを生成するサービスがあるんですが

www.apimatic.io

f:id:sugimomoto:20200118194014p:plain

その機能の中に「API Transformer」というものがありまして、OpenAPI以外にも、各種API Specを相互変換!

www.apimatic.io

f:id:sugimomoto:20200118194455p:plain

しかも、Postman Collection までサポート・・・!!!!!

素晴らしい!!!

なお、基本的には Web API を提供している側向けのサービスなので、お値段は月々 $9.9 ~。

f:id:sugimomoto:20200118194642p:plain

今回はとりあえず Trial で試してみました。

使い方

使い方は簡単です。サインアップしたら、ダッシュボードの画面右上に「Transform API」というボタンがあるので、これをクリック。

f:id:sugimomoto:20200118194832p:plain

あとは対象となる YAML を選んで、Export Format から OpenAPI/Swagger v2.0 を選べばOK!

f:id:sugimomoto:20200118195031p:plain

ValidationがOKだったら、Proceed をクリックすると、OpenAPI/Swagger v2.0 の Spec がダウンロードされてきます。

f:id:sugimomoto:20200118195132p:plain

やったね!

f:id:sugimomoto:20200118195307p:plain

Postman Documentation / API Network が便利だよ!

この記事は「Postman Documentation / API Network が便利だよ! 」ということを言いたいだけの記事です。

Postman Documentation / API Network とは?

Postman には Webベースのドキュメントを公開する機能があります。

learning.getpostman.com

作成すると以下のような見やすい API リファレンス と APIテスティング が行えるWebSiteが自動的に作成されます。

もちろん、Postmanコレクションも取得して、ローカルのPostmanで実行することも可能です。

docs.api.getpostman.com

f:id:sugimomoto:20200114111813p:plain

ちなみに、私の観測範囲で、このPostman Documentation を使ってAPI ドキュメントを公開している日本のクラウドサービスは「Bカート」さんくらい。

https://docs.api.bcart.jp/

f:id:sugimomoto:20200114111943p:plain

ちなみに、Postman では生成したドキュメントをPostmanの サイト上で公開・共有できる仕組みを提供しています。

それが Postman API Network です。

f:id:sugimomoto:20200114112624p:plain

現在、470種類ほどのAPIが公開されており、APIドキュメントの参照、Postman Collectionの入手が可能になっています。

f:id:sugimomoto:20200114112749p:plain

APIを検証する時、Postmanコレクションを毎回手作業でがつがつ作るんですが、予めこういうサイトで公開されていると、すごく楽で助かります。

最後に

パブリックなAPIは、みんな Postman API Network で API documentを公開してくれればいいのに!!!

Postman Collectionは OpenAPI SpecやRAMLからも取り込めるので、敷居は低いと思うんですが。

PowerApps / PowerAutomate カスタムコネクタを Postman コレクションから作成する

前回の記事では OpenAPI(Swagger)Specからカスタムコネクタを作る方法を解説しました。

kageura.hatenadiary.jp

今回は Postman コレクションからカスタムコネクタを作成する方法を見ていきます。

docs.microsoft.com

  • Postman とは?
  • 対象のAPI
  • 出来上がるもの
    • Postman コレクションサンプル
    • Postman コレクションのエクスポート
    • カスタムコネクタの作成
    • アプリの作成
  • おわりに
  • Tips
    • 応答に利用できるレスポンスを予め加えておく
    • 動的URLを構成したい場合どうするの?
続きを読む

OpenAPI(Swagger)Spec から Postman Collection を生成すると楽にAPIテストができる

Postman で API を実行するのは結構手軽にできるんですが、エンドポイントが多かったり、URLパラメータやヘッダーを逐次、ドキュメントから持ってくるのは結構面倒です。

もし、そのAPIがOpenAPI(Swagger) Specを公開していたら、それを取り込むと簡単にPostmanコレクションを生成できます。

OpenAPI Spec って何?

ここを参照しましょう。

OpenAPI Specification(OAS)は、ソースコードへのアクセス、追加ドキュメント、またはネットワークトラフィックの検査を必要とせずに、人間とコンピュータの両方がサービスの機能を発見して理解することを可能にする、  プログラミング言語に依存しないREST APIの標準的なインターフェイス記述を定義します。

引用元:https://github.com/OAI/OpenAPI-Specification

対象のAPI

今回対象にするAPIは私が以前作成して、パブリックに公開している O'Reilly Book List API です。作り方はこちら を参照してください。

f:id:sugimomoto:20200114111206p:plain

以下のURLからOpenAPI Specをダウンロードできます。

http://decodeapiserverdemo.azurewebsites.net/api.rsc/$oas

取り込み方

取り込み方は簡単です。Postmanを立ち上げて、「Import」ボタンをクリックし

f:id:sugimomoto:20200114111211p:plain

事前にダウンロードしておいた、OpenAPI(Swagger)Specのファイルをドラッグ・アンド・ドロップするだけです。

f:id:sugimomoto:20200114111215p:plain

あとはTeamで共有するかどうかと、コレクションを作成するかどうかを決めて、Nextをクリックすれば完了です。

f:id:sugimomoto:20200114111221p:plain

以下のようにコレクションが生成されて、

f:id:sugimomoto:20200114111226p:plain

手軽にAPIを試せる状態が整います。

f:id:sugimomoto:20200114111233p:plain

Reference

learning.getpostman.com