Upgrade to Pro — share decks privately, control downloads, hide ads and more …

200 Over API 接続のコンポーネントベンダーが語る! 「APIのここがツライよ 15選」

200 Over API 接続のコンポーネントベンダーが語る! 「APIのここがツライよ 15選」

200 Over API 接続のコンポーネントベンダーが語る! 「APIのここがツライよ 15選」 #Burikaigi 2020

# Event
Burikaigi 2020
https://toyama-eng.connpass.com/event/156635/

# Tool
CData API Server
https://www.cdata.com/jp/apiserver

Kazuya Sugimoto

February 01, 2020
Tweet

More Decks by Kazuya Sugimoto

Other Decks in Technology

Transcript

  1. © 2019 CData Software Japan, LLC | www.cdata.com/jp 200 Over

    API 接続のコンポーネントベンダーが語る! 「APIのここがツライよ 15選」 2020/02 CData Software Japan #Burikaigi 2020
  2. © 2018 CData Software Japan, LLC | www.cdata.com/jp See the

    World as a Database 杉本 和也:Kazuya Sugimoto • CData Software Japan, LLC Lead Engineer • Microsoft MVP for Business Solution(Dynamics CRM/365) Blog:Morning Girl http://kageura.hatenadiary.jp/ Twitter:@sugimomoto Facebook:sugimomoto About Speaker
  3. © 2018 CData Software Japan, LLC | www.cdata.com/jp About CData

    Software Bi-directional Access to Live App, Database, & Web API Data Through Standard Drivers ・CData Software, Inc. / Started: 1994 (/nsoftware) ・Location: Chapel Hill, NC a spin-off of /n software ・CData Japan: 2016/6 ・20年以上にわたりデータ関連コンポーネントを提供 ・200+ 対応データソース ・「API を使いやすく」をミッションにクラウドデータ接続を標準化
  4. © 2018 CData Software Japan, LLC | www.cdata.com/jp 業界最多級のデータソース Drivers

    for NoSQL, Big Data, & SaaS Connectivity CRMおよびマーケティング自動化 会計システム コラボレーションおよびERP オンプレミスおよびクラウドDB ドキュメントおよびファイル形式 ソーシャルネットワーキング ネットワーキングおよび認証 電子商取引 その他
  5. © 2018 CData Software Japan, LLC | www.cdata.com/jp 普段CData が触っているAPI

    現在データソースは 約200 種類ほど うちREST 4割、SOAP 2割。 NoSQL・CloudDB(例:MongoDB・BigQuery)などWebAPIではなく独自APIもあり。 検証しているAPIは数知れず。(不採用や開発中も含めると500種類ほど?)
  6. © 2018 CData Software Japan, LLC | www.cdata.com/jp 今日のお話 なぜその

    API は使いづらい? を経験を元に語ります。 では、どうするべきか? APIのモダン化・イケてるAPI・使いやすいAPIのポイント
  7. © 2018 CData Software Japan, LLC | www.cdata.com/jp こんなAPIは使いづらい API

    あるある! 15選! APIあるから繋げて使えるでしょ、と言われたけど。。。 実録
  8. © 2018 CData Software Japan, LLC | www.cdata.com/jp API 仕様書がPDF・Excelで提供されている!

    ・Word ベース や 神エクセル ・ドキュメントと実装の乖離 ・中にはドキュメントがCD-ROMで送られ てくるところも・・・。
  9. © 2018 CData Software Japan, LLC | www.cdata.com/jp リクエスト・レスポンスのオブジェクトが神EXCEL ・繰り返しオブジェクトの見分けがつかない

    ・実際のレスポンスを受け取るクラスやプロ グラムを書くのが大変・・・。 右の仕様書は e-Gov API 仕様書 www.e-gov.go.jp/shinsei/interface_api/download.html
  10. © 2018 CData Software Japan, LLC | www.cdata.com/jp API を使うのに紙文書で申請が必要!

    ・NDAや申請書、パートナー契約などなど紙文 書でのやり取りが必要。 ・APIを利用するまでに2週間以上時間がか かることも・・・。 ・US サービスのAPIはそこまで使用する障壁 が高くない。日本企業では多い印象。 そもそもなぜ非公開なのか
  11. © 2018 CData Software Japan, LLC | www.cdata.com/jp エンドポイント毎に設計思想が違う ・サービスの中でURLのデザインがバラバラ

    POST /api/getMail GET /api/users ・Content-Type が複数パターン存在 application/x-www-form-urlencoded application/json
  12. © 2018 CData Software Japan, LLC | www.cdata.com/jp 「パラメータ」がなんのことかわからない ・URLパラメータ?

    ・ヘッダーパラメータ? ・x-www-form-urlencoded? 意外と記載していないAPI仕様書が多くて、 サンプルリクエストも無いと結構困る・・・。
  13. © 2018 CData Software Japan, LLC | www.cdata.com/jp 軽減税率対応 ・もともと複数税率に対応していなかったの

    で、税率タイプフィールドが追加 ・8%合計・10%合計のフィールドが追加 (これはこの後どうなるんだ) AmazonMarketplaceは何も変更が 無かった。
  14. © 2018 CData Software Japan, LLC | www.cdata.com/jp API 利用Limit

    が厳しすぎる ・1分間にXX回リクエストまで、等 ・BIするのに全データを取得したいが制限にひっかかって しまい、取得できない (Twitterなどもちろん仕方がないものもある)
  15. © 2018 CData Software Japan, LLC | www.cdata.com/jp ページングの指定方法が違いすぎる Qiita

    MoneyForward ページ指定方法 URLパラメータで指定 Page=1 URLパラメータで指定 Page=1 ページ数最大値表示 レスポンスヘッダに記載 Total-Count: 6 レスポンスボディに記載 total_count : 6 1ページあたりの表示件数表 記 URLパラメータで指定 per_page=20 URLパラメータで指定 Limit=100 次ページリンク レスポンスボディに記載 Link: <http://qiita.com/api/v2/use rs?page=1>; rel="first", なし ・同じ会社のAPIでも微妙に違う ・ヘッダに記載していたり、ボディに記載していたり
  16. © 2018 CData Software Japan, LLC | www.cdata.com/jp リソース名が省略語すぎて、なんのことだかわからない 例えば・・・

    ・営業案件 Opportunity がOPP 日本語ローマ字略称は覚えづらく、つらい・・・ ・勘定科目マスタ が KKM とか
  17. © 2018 CData Software Japan, LLC | www.cdata.com/jp 通貨フィールドが「¥」マーク付き ・通貨フィールドが数値型ではなく、円マーク付きで返っ

    てくるので文字列になってしまう 例:var x = “¥1,000,000”; ・クライアントサイドで通貨マークの調整処理が必要 ・BIツールに取り入れる時にはトリミングして数値変換 が必要
  18. © 2018 CData Software Japan, LLC | www.cdata.com/jp データを取得したいのにPOST ・例:Bodyで検索条件を指定するから、

    POSTメソッドでGETする ・基本的にすべてのエンドポイントがPOST仕 様だったり(統一感があれば、有り)
  19. © 2018 CData Software Japan, LLC | www.cdata.com/jp メタデータがAPIで取得できない ・どのくらいリソースがあるのかわからない

    ・クライアントサイドで動的な処理ができない ・APIの変更に動的に対応することができない
  20. © 2018 CData Software Japan, LLC | www.cdata.com/jp 404 のはずなのに

    200 でエラーが返ってくる ・成功なのに失敗? ・リソース名が間違っていたはずなのに、200番 ・原因が不明瞭になるので、サポートの問い合わせが増え る・・・ ・SQLのエラーレスポンスがそのまま返ってくることも
  21. © 2018 CData Software Japan, LLC | www.cdata.com/jp サマリデータのみで、明細が取れない ・見積の合計金額は取れるのに、明細が取れない

    ・APIから取得できるデータがそもそもサマリした後の データで、使用者側でサマリの観点を変えることがで きない ・ヘッダと明細を一括のリクエストで作成しないといけ ないAPIもあったり
  22. © 2018 CData Software Japan, LLC | www.cdata.com/jp API Limit

    が厳しすぎる! ページングの指定方法が違いすぎる! リソース指向と関数指向がまざってる! 通貨フィールドが「¥」マーク付き! データを取得したいのにPOST! エンドポイント一覧がAPIで取得できない! 404 のはずなのに 200 でエラーが返ってくる! サマリデータのみで、明細が取れない! 仕様書がPDF・Excelで提供されている! API を使うのに文書で紙申請が必要! リソース名が省略語すぎて、なんのことだかわからない! APIの使いづらさを分類するとざっくりこんな感じ 設計上の問題 組織・文化的な問題
  23. © 2018 CData Software Japan, LLC | www.cdata.com/jp なぜ設計上の問題が発生しやすいのか? なぜならREST

    APIは APIの定義をするプロトコルではないから 設計上の問題の大半はREST APIの問題 ではおさえるべきAPIプロトコルとは何か?
  24. © 2018 CData Software Japan, LLC | www.cdata.com/jp Standards-based Interfaces

    OData • Microsoftが主導となり推進しているプロトコル • HTTPメソッド(GET/POST/PUT/DELETE)でデータの参照更新ができる仕様 • RESTfulな設計パターンを実装 Open API Specification • 略してOAS、旧Swagger • REST APIの記述に関する仕様とAPIをコールするためのコードとドキュメントを自動生成するツール群 • Apache 2.0 License • 2015年に推進団体「Open API Initiative」が設立 • The Linux Foundationの協力のもと、Microsoft/Google/IBM/Paypal/3Scale(Redhat) / Apigee(Google) などにより 結成
  25. © 2018 CData Software Japan, LLC | www.cdata.com/jp モダンAPIに求められる3つのポイント 1.

    メタデータ・スキーマの提供 2. ドキュメントの自動生成(メタデータ・スキーマを元にした生成) 3. 規格(リクエスト・レスポンスルール)の統一 実はプロトコルをおさえるだけで、APIスケールのしやすさ、 クライアントサイドの作りやすさに繋がる!
  26. © 2018 CData Software Japan, LLC | www.cdata.com/jp モダンAPI=エコシステムでよく利用されるAPI 当社調べ

    SalesforceのAPI接続をネイティブでサポートしているBI/ETLツール群
  27. © 2018 CData Software Japan, LLC | www.cdata.com/jp クライアントサイド データソースサイド

    API PC Mobile モダンAPI=クライアントサイドに優しい RDB ファイル クラウド サービス API仕様書から 自動生成
  28. © 2018 CData Software Japan, LLC | www.cdata.com/jp アプリケーション、データベース、またはサービスからライブREST /

    OData APIを作成 データベースからREST API を自動生成。SQL またはNoSQL データ ベースを接続するだけで、API Server がフルスペックなWeb API を ドキュメントと共に自動生成します。 オンプレミス | インターネット公開 | クラウド CData API Server
  29. © 2018 CData Software Japan, LLC | www.cdata.com/jp 多様なデータベース・NoSQLからWeb APIを自動生成

    The API Server offers integration with popular relational and NoSQL DBs more online at www.cdata.com/apiserver/
  30. © 2018 CData Software Japan, LLC | www.cdata.com/jp 各種Cloud Serviceも標準ODataへ変換し提供可能

    Use the CData Drivers for NoSQL, Big Data, & SaaS Connectivity more online at www.cdata.com/drivers/
  31. © 2018 CData Software Japan, LLC | www.cdata.com/jp CData API

    Server Features Build a REST API for your database with a few clicks • SQL Server, MySQL, DB2, など多様なデータ ベースをサポート。 • MongoDB, Cassandra, Flat FilesなどのNoSQL やクラウドサービスも対応。 • OData, REST, JSON, SOAP, CSV, TSV などの 一般的に使われるデータ形 式でエントリーポイントを公 開。 • モニタリング、ログ、レート制 限などの主要なAPI 管理 機能を搭載 • API Server は、 イントラネット、外部接続 サーバー、またはクラウドに 展開可能。 • Azure や AWS, Heroku などの 各種 PaaS にも展開可能。 豊富な データベース対応 Open Data アクセス API マネジメント オンプレ/クラウドへ 展開可能
  32. © 2018 CData Software Japan, LLC | www.cdata.com/jp 詳しくはこちら! https://kageura.hatenadiary.jp/entry/cdataapiserverexcel

    無料の API 自動生成ツールを使って、Excelファイルから REST API を生成してみる:CData API Server