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

    View Slide

  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

    View Slide

  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 を使いやすく」をミッションにクラウドデータ接続を標準化

    View Slide

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

    View Slide

  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種類ほど?)

    View Slide

  6. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    なので、、、
    ・サポートしなければいけないAPIも最大級
    ・新データソース対応のために検証するAPIも最大級

    View Slide

  7. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    基本的に触ってみて、使ってみて、食べてみてから
    開発可能か考える
    そのためAPIの酸いも甘いも知っている!

    View Slide

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

    View Slide

  9. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    こんなAPIは使いづらい
    API あるある! 15選!
    APIあるから繋げて使えるでしょ、と言われたけど。。。
    実録

    View Slide

  10. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    API 仕様書がPDF・Excelで提供されている!
    ・Word ベース や 神エクセル
    ・ドキュメントと実装の乖離
    ・中にはドキュメントがCD-ROMで送られ
    てくるところも・・・。

    View Slide

  11. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    リクエスト・レスポンスのオブジェクトが神EXCEL
    ・繰り返しオブジェクトの見分けがつかない
    ・実際のレスポンスを受け取るクラスやプロ
    グラムを書くのが大変・・・。
    右の仕様書は e-Gov API 仕様書
    www.e-gov.go.jp/shinsei/interface_api/download.html

    View Slide

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

    View Slide

  13. © 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

    View Slide

  14. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    タイムゾーンどこ?
    ・クラウドサービスなのに固定タイムゾーン
    ・そもそもタイムゾーン表記が無かったり

    View Slide

  15. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    「パラメータ」がなんのことかわからない
    ・URLパラメータ?
    ・ヘッダーパラメータ?
    ・x-www-form-urlencoded?
    意外と記載していないAPI仕様書が多くて、
    サンプルリクエストも無いと結構困る・・・。

    View Slide

  16. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    軽減税率対応
    ・もともと複数税率に対応していなかったの
    で、税率タイプフィールドが追加
    ・8%合計・10%合計のフィールドが追加
    (これはこの後どうなるんだ)
    AmazonMarketplaceは何も変更が
    無かった。

    View Slide

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

    View Slide

  18. © 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:
    rs?page=1>; rel="first",
    なし
    ・同じ会社のAPIでも微妙に違う
    ・ヘッダに記載していたり、ボディに記載していたり

    View Slide

  19. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    リソース名が省略語すぎて、なんのことだかわからない
    例えば・・・
    ・営業案件 Opportunity がOPP
    日本語ローマ字略称は覚えづらく、つらい・・・
    ・勘定科目マスタ が KKM とか

    View Slide

  20. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    通貨フィールドが「¥」マーク付き
    ・通貨フィールドが数値型ではなく、円マーク付きで返っ
    てくるので文字列になってしまう
    例:var x = “¥1,000,000”;
    ・クライアントサイドで通貨マークの調整処理が必要
    ・BIツールに取り入れる時にはトリミングして数値変換
    が必要

    View Slide

  21. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    データを取得したいのにPOST
    ・例:Bodyで検索条件を指定するから、
    POSTメソッドでGETする
    ・基本的にすべてのエンドポイントがPOST仕
    様だったり(統一感があれば、有り)

    View Slide

  22. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    メタデータがAPIで取得できない
    ・どのくらいリソースがあるのかわからない
    ・クライアントサイドで動的な処理ができない
    ・APIの変更に動的に対応することができない

    View Slide

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

    View Slide

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

    View Slide

  25. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    API を試すのに 500万円くらいかかる

    View Slide

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

    View Slide

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

    View Slide

  28. © 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) などにより
    結成

    View Slide

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

    View Slide

  30. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    モダンAPI=エコシステムでよく利用されるAPI
    当社調べ SalesforceのAPI接続をネイティブでサポートしているBI/ETLツール群

    View Slide

  31. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    クライアントサイド
    データソースサイド
    API
    PC
    Mobile
    モダンAPI=クライアントサイドに優しい
    RDB
    ファイル
    クラウド
    サービス
    API仕様書から
    自動生成

    View Slide

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

    View Slide

  33. © 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/

    View Slide

  34. © 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/

    View Slide

  35. © 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 マネジメント
    オンプレ/クラウドへ
    展開可能

    View Slide

  36. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    Free ライセンスバージョンがあります!

    View Slide

  37. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    詳しくはこちら!
    https://kageura.hatenadiary.jp/entry/cdataapiserverexcel
    無料の API 自動生成ツールを使って、Excelファイルから
    REST API を生成してみる:CData API Server

    View Slide

  38. © 2018 CData Software Japan, LLC | www.cdata.com/jp
    Thank You!

    View Slide