20170705 apiをつくろう

CData Software Japan
CData Software JapanCData Software Japan
まずはAPI を作ろう
でも、使われるAPI を
2017/07/05
CData Software Japan
API エコノミー友の会v2:セッション1
See the World as a Database
Speaker
疋田 圭介
• CData Software Japan 合同会社 代表社員
• Japan Web API Community の事務局 https://jwacom.connpass.com/
経歴
• 業務データ活用一筋10年+
• 金融機関10年(内、インドネシア5年)
• 開発コンポーネント企業の海外オペレーション統括3年
• CData Software の日本オペレーション立ち上げ
@cdatajapan (占拠中)
@keisuke.hikita.5
See the World as a Database
• 20年以上にわたりデータ関連
コンポーネントを提供
• 80+ 対応データソース
• 「See the World as a Database」を
ミッションにクラウドデータ
への接続方法を標準化
About
• CData Software, Inc.
• Started: 1994 (/n software)
• Location: Chapel Hill, NC
• a spin-off of /n software
• CData Japan: 2016/6
(JV with Infoteria)
See the World as a Database
: RDB(SQL) ⇔Web API 変換のエキスパート
Data Drivers
Web API を標準SQL
で利用可能に
JDBC/ODBC/ADO etc.
API Server
RDB/NoSQL/file から
超高速でREST API
を自動生成
See the World as a Database
業界最多級のデータソース
See the World as a Database
BI、帳票、ETL ツールにデータ連携機能を補完
Visual Studio, Cognos BI,
Crystal Reports,
ActiveReports, FileMaker Pro,
Power BI, Access, Excel,
Word, MicroStrategy,
QlikView, QlikSense, SAP
Business Object, Forguncy,
StiLL, ColdFusion, Eclipse,
NetBeans, IntelliJ, JBoss, Jetty,
WebLogic, Yellofin BI,
ASTERIA WARP,
MagicSoftware, PolarisGate,
SVF, Dr.Sum … and more
See the World as a Database
OEM Partners—by Global #1 players, by Japan’s #1 players
See the World as a Database
今日は「使われるAPI を作る」話を
•「API を使うプロフェッショナル」だからお話できる
•まず、作りましょう
•ただし、正しくつくりましょう(「これさえ押さえよう」というポイント)
Why need your APIs?
See the World as a Database
増加するPublic API & さらに多いPrivate API
Private APIs が遥かに多い
• モバイルバックエンド
• クラウド⇔オンプレ間
• マイクロサービス
• パートナーAPI
• 特定顧客へのAPI など
Public APIs
• Saas API
• Web Service API
• Paas/Iaas API
• 既に2万を超えるAPI が
存在し、急速に増加中
引用元 : https://www.programmableweb.com/api-research
See the World as a Database
ユーザー目線①ウェブサービスの限界
•ウェブサービスのユーザーは目でデータを取得して、次の処理を指示
•結局はコピペであって、オートメーションではない
情報取得
処理
コピペ
See the World as a Database
ユーザー目線②デバイス多様化
•ブラウザ+iOS+Android 向けに異なるバックエンドを開発?
•統一されたAPI を作って開発および管理コストを下げるべき
See the World as a Database
ユーザー目線③UI を決めるのは誰?
•サービスへの顧客アクセスにはUI が必要
•ブラウザを好むユーザーもいれば、モバイルアプリを好むユーザーも
いるし、チャットしか使わない人も⇒複数のUI に自社対応は苦しい
同じタスク
異なるUI
See the World as a Database
ユーザー目線④他のサービスへの統合
•機能ごとに他のサービスやアプリを使うことは負担
•LINEなどよく利用されている他サービスからでも自社サービスを使えれば便利
See the World as a Database
ユーザー目線⑤サービス間の比較
•たくさんあるものから最適なものを選ぶには比較が必要
•時間やコストをかけずに比較
See the World as a Database
パートナー目線①継続性・安定性
•APIとして提供を始めると可用性・継続性・互換性が向上
•アドホック対応でこれらを満たせない
「24/365?」 「バージョンは?」「デバイスは?」
See the World as a Database
パートナー目線②エコシステムへの参入が容易
•参入が簡単な例:
「やってみようかな」→すぐに公開されたAPI ドキュ
メントチェック→エンドポイント一つを動かしてみ
る
•参入が難しい例:
「やってみようかな」→書類を含むパートナー契約
が必要
See the World as a Database
パートナー目線③セキュリティの確保
•「ID とパスワードを下さい。スクレイピングします」
⇒セキュリティ上推奨されない
•モダンな認証(OAuth)、レートリミット、ログ管理は必須
See the World as a Database
ビジネスの拡大①モノ→コト
•ハードでの差別化ではなく、サービスや体験が差別化要因に
•サービス化が起これば、サービスを拡大させるためにAPI が必要に
See the World as a Database
ビジネスの拡大②データ資産の活用
•自社サービスの利用データを活用
‧検索
‧利用ログ
‧レコメンド
‧GPS
‧アクセス
‧グラフ
•AI (Deep Learning)活用
See the World as a Database
ビジネスの拡大③ オープンイノベーション
•非コア機能の他のサービスからの補完
•サービスインのスピード化
•逆に他者/他社に自社のサービスを使ってもらえればユーザーは
飛躍的に拡大
決済 メール送信 地図 検索 ファイル・
簡易DB
電話
See the World as a Database
「競合がすでにAPI を公開しています」
See the World as a Database
API が生み出す新しい価値は「データ連携」以上
内部API
• 複数サイト、マルチクラウドを繋ぐ
• モバイルのバックエンド統一
• オートメーション
• マイクロサービスアーキテクチャ
• AI (機械学習)の活用
• ビッグデータの活用
外部API
• パートナー 間のAPI 通信
• API 公開による顧客の利便性向上
• API エコノミー構築
• オープンイノベーション
従来の
価値
新しい
価値
今日はAPI を作りましょう。
みなさんも今晩帰ったら作ってください。
See the World as a Database
「仙台弁API」を作ろう
「とてもすごい」(標準語)
「いぎなしすげぇ」(仙台弁)
See the World as a Database
仙台弁API の最低要件
•単語レベル
•標準語を投げると仙台弁が返ってくる
•仙台弁を投げると標準語が返ってくる
•利用者が一覧を取得可能
See the World as a Database
RDBMS API 利用先
REST
API SERVER
「仙台弁API」の構成
入力システム
いぎなし簡単だっちゃ?
「ほかにどんな機能を入れっぺか?」
API 開発のエレメント
See the World as a Database
設計
•主流のRESTful で
•OData (JSON)で、Salesforce とかMachine Learning とかで使いやすく
•OpenAPI 準拠で
See the World as a Database
出力定義
•データの出力形式のバリエーションはほしい
See the World as a Database
ユーザー管理・セキュリティ
•ユーザー認証の仕組み
•IP 制限
•レートリミット
•課金するための仕組み
See the World as a Database
利用支援
•日本語ドキュメント
•Swagger による標準記述も
•管理コンソール
•ログの取得
•通知機能
「Too much だっちゃ!」
公開したらどうなる?
See the World as a Database
さあ、API エコノミーだ!
API できた!
「公開」ポチッ
。。。あれ?
API ユーザーが増えない?
See the World as a Database
API 利用者の悩み
•対応したいAPI が多すぎて、手に負えない
•ドキュメントが難解、API毎に記述されている内容が異なる
•オフショア開発なんだけどドキュメント英語版ないの?
•RDBMS/SQL ほどにAPI を扱えるエンジニアが少ない
•既存ツールがRDB/SQL 対応で、JSON 対応ではない
•API 仕様の変更が多すぎて管理できない
•API の記述方法などの規格化が進んでいない
See the World as a Database
後悔しないために①Lean スタート⇒目的を明確化
•目的や利用例がないとどんなAPI が最適かわからない。
•とはいえ、最初から明確にすることは不可能・コスト高い
•「API ないんですか?」とはじめに言ってくれたユーザーやパー
トナーと利用シナリオを明確化
•作り込む前に動くデモを
•まずはPartner API で一般公開ではなくても
デモAPI Partner API Public API
See the World as a Database
後悔しないために②業界標準への対応
•さまざまな業界標準
‧OData (まだまだ実質の標準)
‧OpenAPI (Swagger)
•なぜ業界標準が重要
‧エンジニアは業界標準に準拠してもらうと楽
‧ETL などのツール、機械学習側でも業界標準を意識
OData
• Microsoftが主導となり推進しているプロトコル
• HTTPメソッド(GET/POST/PUT/DELETE)でデータの参照更新ができ
る仕様
• RESTfulな設計パターンを実装
• ODataデータソース
 Power BI
 Tableau
 Salesforce(Lightning Connect)
:
• ODataエンドポイントを作成
 Visual Studio (ASP.NET Web API)
 Apache Olingo / Odata4j(JavaのOData Framework)
 CData API Server / OData Connector
 DynamicsCRMではWCFのData Servicesフレームワークに基づいて実装
( https://msdn.microsoft.com/ja-jp/library/gg334279(v=crm.7).aspx )
http://www.odata.org/
Open API (Swagger)
http://swagger.io/
• REST APIの記述に関する仕様と、APIをコールするためのコードとド
キュメントを自動生成するツール群
• Apache 2.0 License
• 2015年に推進団体「Open API Initiative」が設立
 The Linux Foundationの協力のもと、Microsoft, Google , IBM , Paypal, 3Scale(Redhat) , Apigee(Google) などに
より結成
https://www.openapis.org/
See the World as a Database
後悔しないために③ツール/パートナー圏の形成
パートナーやツール連携なしにAPI エコノミーは作りづらい
•代表的なパートナーとの1 to 1 連携(連携サービス化)
•代表的なツールETL、BI、開発ツールとの連携
‧ETL
‧BI
‧Point-to-point ツール(Zapier、IFTTT、Micrsoft Flow etc)
•ODBC Driver、JDBC Driver の提供
•SDK の提供
いずくないAPI を作るのは大事。
これから10分でこれらの要件を満たす
「仙台弁API 」を作ります。
デモ
See the World as a Database
手順
•SQL Server にすでに仙台弁-標準語のテーブル
•API Server をダウンロード
•API Server にSQL Server を接続
•sendaibenlist テーブルをリソース設定
•ユーザー認証設定
•レートリミット設定など
•デプロイ
See the World as a Database
出来上がったAPI
•ドキュメント: https://cdatajapiserver.azurewebsites.net/api.rst#dbo_sendaibenlist
•ユーザー認証 User : apiseminar / Auth トークン 7m3B8b8g5J2z7o7T6w9n
API をたたいてみよう!
•GET で一覧取得: https://cdatajapiserver.azurewebsites.net/api.rsc/dbo_sendaibenlist/
•GET でID を指定して取得(末尾の()に番号を入れる):
https://cdatajapiserver.azurewebsites.net/api.rsc/dbo_sendaibenlist(<Id>)
•GET で標準語を指定して取得:
https://cdatajapiserver.azurewebsites.net/api.rsc/dbo_sendaibenlist?$filter=hyoujungo
See the World as a Database
簡単な構成① WebDB (SharePoint やkintone 等)を利用
WEB DB入力ツール
データ入
力
API 利用先
REST
OpenAPI
を自動生
成
API SERVER
オンプレサーバーか
Azure やAWS
SaaS (クラウド)
使い慣れたツールから
データ入力が可能
複雑なDB 構築や
ホスティングが不
要
ポイント&クリックで接
続・API 開発が可能
See the World as a Database
簡単な構成② クラウドストレージを利用
CLOUD STORAGE入力ツール
ファイルを
アップロー
ド
API 利用先
REST
OpenAPI
を自動生
成
API SERVER
オンプレサーバーか
Azure やAWS
SaaS (クラウド)CSV ファイ
ル
使い慣れたツールから
データ作成
複雑なDB 構築や
ホスティングが不
要
ポイント&クリックで接
続・API 開発が可能
See the World as a Database
まとめ
1. API を作ることはビジネスの成長に非常に重要
2. API は簡単に作れると思ってほしい
3. 後悔しないためには、API 開発のエレメントが膨らむ
4. 「API 管理ツール」の利用は一つの解決策
See the World as a Database
告知: CData Day 2017
http://www.cdata.com/jp/events/cdataday17/
See the World as a Database
告知: Enterprise IT Seminar at XLsoft
~外資IT 担当者 & グローバル案件担当向け
https://www.xlsoft.com/jp/products/cdata/seminar.html
1 von 51

Recomendados

「Swagger」によるAPI仕様の管理と標準化 von
「Swagger」によるAPI仕様の管理と標準化「Swagger」によるAPI仕様の管理と標準化
「Swagger」によるAPI仕様の管理と標準化Masatoshi Tsuchino
910 views12 Folien
オープンソースのAPIゲートウェイ Kong ご紹介 von
オープンソースのAPIゲートウェイ Kong ご紹介 オープンソースのAPIゲートウェイ Kong ご紹介
オープンソースのAPIゲートウェイ Kong ご紹介 briscola-tokyo
4.1K views25 Folien
ノンコーディング・超高速のApi 開発・運用基盤「cdata api server」のご紹介 von
ノンコーディング・超高速のApi 開発・運用基盤「cdata api server」のご紹介ノンコーディング・超高速のApi 開発・運用基盤「cdata api server」のご紹介
ノンコーディング・超高速のApi 開発・運用基盤「cdata api server」のご紹介CData Software Japan
1.8K views21 Folien
RDBからWebAPIを5分で自動生成 von
RDBからWebAPIを5分で自動生成RDBからWebAPIを5分で自動生成
RDBからWebAPIを5分で自動生成CData Software Japan
1.2K views10 Folien
kintoneを多様なツールでつなぐには? von
kintoneを多様なツールでつなぐには?kintoneを多様なツールでつなぐには?
kintoneを多様なツールでつなぐには?CData Software Japan
1.5K views19 Folien
多対多のクラウド利用を支えるデータ標準化技術 von
多対多のクラウド利用を支えるデータ標準化技術 多対多のクラウド利用を支えるデータ標準化技術
多対多のクラウド利用を支えるデータ標準化技術 CData Software Japan
482 views19 Folien

Más contenido relacionado

Was ist angesagt?

Kongの概要と導入事例 von
Kongの概要と導入事例Kongの概要と導入事例
Kongの概要と導入事例briscola-tokyo
2.8K views38 Folien
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ von
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチKazuya Sugimoto
2.4K views86 Folien
Kong meetup tokyo 2018.10.26 ブリスコラ von
Kong meetup tokyo 2018.10.26 ブリスコラKong meetup tokyo 2018.10.26 ブリスコラ
Kong meetup tokyo 2018.10.26 ブリスコラbriscola-tokyo
886 views34 Folien
1_各Atlassian製品の紹介 von
1_各Atlassian製品の紹介1_各Atlassian製品の紹介
1_各Atlassian製品の紹介Ricksoft
1.6K views27 Folien
Web API を気軽に使える ツールやサービスのご紹介 von
Web API を気軽に使えるツールやサービスのご紹介Web API を気軽に使えるツールやサービスのご紹介
Web API を気軽に使える ツールやサービスのご紹介CData Software Japan
5.5K views29 Folien
ODBC/JDBC/ADOでつながる kintoneの世界 von
ODBC/JDBC/ADOでつながるkintoneの世界ODBC/JDBC/ADOでつながるkintoneの世界
ODBC/JDBC/ADOでつながる kintoneの世界CData Software Japan
858 views17 Folien

Was ist angesagt?(20)

Kongの概要と導入事例 von briscola-tokyo
Kongの概要と導入事例Kongの概要と導入事例
Kongの概要と導入事例
briscola-tokyo2.8K views
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ von Kazuya Sugimoto
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
Kazuya Sugimoto2.4K views
Kong meetup tokyo 2018.10.26 ブリスコラ von briscola-tokyo
Kong meetup tokyo 2018.10.26 ブリスコラKong meetup tokyo 2018.10.26 ブリスコラ
Kong meetup tokyo 2018.10.26 ブリスコラ
briscola-tokyo886 views
1_各Atlassian製品の紹介 von Ricksoft
1_各Atlassian製品の紹介1_各Atlassian製品の紹介
1_各Atlassian製品の紹介
Ricksoft1.6K views
Web API を気軽に使える ツールやサービスのご紹介 von CData Software Japan
Web API を気軽に使えるツールやサービスのご紹介Web API を気軽に使えるツールやサービスのご紹介
Web API を気軽に使える ツールやサービスのご紹介
CodelessDevelop using iPaas von Tomoyuki Obi
CodelessDevelop using iPaasCodelessDevelop using iPaas
CodelessDevelop using iPaas
Tomoyuki Obi563 views
Ignite 2021秋 recap - 開発者向け新機能紹介 von Kazushi Kamegawa
Ignite 2021秋 recap - 開発者向け新機能紹介Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介
Kazushi Kamegawa1.3K views
アジャイル開発のためのDatadog von Nobuyasu Seki
アジャイル開発のためのDatadogアジャイル開発のためのDatadog
アジャイル開発のためのDatadog
Nobuyasu Seki1.7K views
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ von Issei Hiraoka
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ2020/12/03 SaaS を正しい方向へ加速するフィードバックループ
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ
Issei Hiraoka225 views
API活用で更に広がるDynamicsエコシステム von CData Software Japan
API活用で更に広がるDynamicsエコシステムAPI活用で更に広がるDynamicsエコシステム
API活用で更に広がるDynamicsエコシステム
クラウド時代のデータ連携 ~ そして少し SharePoint 連携事例 ~ von CData Software Japan
クラウド時代のデータ連携 ~ そして少し SharePoint 連携事例 ~クラウド時代のデータ連携 ~ そして少し SharePoint 連携事例 ~
クラウド時代のデータ連携 ~ そして少し SharePoint 連携事例 ~
20190727_DevelopUseiPaas von Tomoyuki Obi
20190727_DevelopUseiPaas20190727_DevelopUseiPaas
20190727_DevelopUseiPaas
Tomoyuki Obi650 views
KongHQ Summit Japan 2021 von Arshal Ameen
KongHQ Summit Japan 2021KongHQ Summit Japan 2021
KongHQ Summit Japan 2021
Arshal Ameen173 views

Destacado

Power BI をシステムやアプリ開発と一緒に使うなら…~リアルタイムストリーミングの使い方~ von
Power BI をシステムやアプリ開発と一緒に使うなら…~リアルタイムストリーミングの使い方~Power BI をシステムやアプリ開発と一緒に使うなら…~リアルタイムストリーミングの使い方~
Power BI をシステムやアプリ開発と一緒に使うなら…~リアルタイムストリーミングの使い方~Yugo Shimizu
3.3K views31 Folien
Facebook のデータを Power BI で見てみると…~セルフマーケティングに活用できるかも!?~ von
Facebook のデータを Power BI で見てみると…~セルフマーケティングに活用できるかも!?~Facebook のデータを Power BI で見てみると…~セルフマーケティングに活用できるかも!?~
Facebook のデータを Power BI で見てみると…~セルフマーケティングに活用できるかも!?~Yugo Shimizu
1.9K views45 Folien
え!?データがオンプレにあるけどPower BI で BI したいの? von
え!?データがオンプレにあるけどPower BI で BI したいの?え!?データがオンプレにあるけどPower BI で BI したいの?
え!?データがオンプレにあるけどPower BI で BI したいの?Yugo Shimizu
15K views49 Folien
メタプログラミングって何だろう von
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろうKota Mizushima
28.7K views16 Folien
Hello! intermediate language von
Hello! intermediate languageHello! intermediate language
Hello! intermediate languageKouji Matsui
7.3K views9 Folien
メタプログラミングでExcel仕様書よさらば von
メタプログラミングでExcel仕様書よさらばメタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらばKouji Matsui
15.9K views65 Folien

Destacado(11)

Power BI をシステムやアプリ開発と一緒に使うなら…~リアルタイムストリーミングの使い方~ von Yugo Shimizu
Power BI をシステムやアプリ開発と一緒に使うなら…~リアルタイムストリーミングの使い方~Power BI をシステムやアプリ開発と一緒に使うなら…~リアルタイムストリーミングの使い方~
Power BI をシステムやアプリ開発と一緒に使うなら…~リアルタイムストリーミングの使い方~
Yugo Shimizu3.3K views
Facebook のデータを Power BI で見てみると…~セルフマーケティングに活用できるかも!?~ von Yugo Shimizu
Facebook のデータを Power BI で見てみると…~セルフマーケティングに活用できるかも!?~Facebook のデータを Power BI で見てみると…~セルフマーケティングに活用できるかも!?~
Facebook のデータを Power BI で見てみると…~セルフマーケティングに活用できるかも!?~
Yugo Shimizu1.9K views
え!?データがオンプレにあるけどPower BI で BI したいの? von Yugo Shimizu
え!?データがオンプレにあるけどPower BI で BI したいの?え!?データがオンプレにあるけどPower BI で BI したいの?
え!?データがオンプレにあるけどPower BI で BI したいの?
Yugo Shimizu15K views
メタプログラミングって何だろう von Kota Mizushima
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima28.7K views
Hello! intermediate language von Kouji Matsui
Hello! intermediate languageHello! intermediate language
Hello! intermediate language
Kouji Matsui7.3K views
メタプログラミングでExcel仕様書よさらば von Kouji Matsui
メタプログラミングでExcel仕様書よさらばメタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらば
Kouji Matsui15.9K views
Let's add Power BI to your IT-Systems or Apps von Yugo Shimizu
Let's add Power BI to your IT-Systems or AppsLet's add Power BI to your IT-Systems or Apps
Let's add Power BI to your IT-Systems or Apps
Yugo Shimizu1.6K views
スグにできる!Microsoft Flow でこんな連携あんな連携 von Hirofumi Ota
スグにできる!Microsoft Flow でこんな連携あんな連携スグにできる!Microsoft Flow でこんな連携あんな連携
スグにできる!Microsoft Flow でこんな連携あんな連携
Hirofumi Ota8.1K views
激闘! Office 365 Groups vs. Teams vs. Skype vs. Yammer von Hirofumi Ota
激闘! Office 365 Groups vs. Teams  vs. Skype vs. Yammer激闘! Office 365 Groups vs. Teams  vs. Skype vs. Yammer
激闘! Office 365 Groups vs. Teams vs. Skype vs. Yammer
Hirofumi Ota10.5K views
SharePoint Online Communication Sites お手軽サイト作成 von Hirofumi Ota
SharePoint Online Communication Sites お手軽サイト作成SharePoint Online Communication Sites お手軽サイト作成
SharePoint Online Communication Sites お手軽サイト作成
Hirofumi Ota4.7K views
Microsoft Ignite 2017 に行ってきました von Hirofumi Ota
Microsoft Ignite 2017 に行ってきましたMicrosoft Ignite 2017 に行ってきました
Microsoft Ignite 2017 に行ってきました
Hirofumi Ota3.5K views

Similar a 20170705 apiをつくろう

20170317 クラウド時代のデータ連携 超高速開発コミュニティ von
20170317 クラウド時代のデータ連携 超高速開発コミュニティ20170317 クラウド時代のデータ連携 超高速開発コミュニティ
20170317 クラウド時代のデータ連携 超高速開発コミュニティCData Software Japan
754 views34 Folien
CData API Server ハンズオン von
CData API Server ハンズオンCData API Server ハンズオン
CData API Server ハンズオンCData Software Japan
467 views23 Folien
CData Drivers HandsOn 20180326 von
CData Drivers HandsOn 20180326CData Drivers HandsOn 20180326
CData Drivers HandsOn 20180326CData Software Japan
125 views39 Folien
CData Drivers for PCA 概要 von
CData Drivers for PCA 概要CData Drivers for PCA 概要
CData Drivers for PCA 概要CData Software Japan
273 views43 Folien
CData General Proposal von
CData General ProposalCData General Proposal
CData General ProposalCData Software Japan
89 views36 Folien
「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは? von
「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?
「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?CData Software Japan
1.4K views66 Folien

Similar a 20170705 apiをつくろう(20)

20170317 クラウド時代のデータ連携 超高速開発コミュニティ von CData Software Japan
20170317 クラウド時代のデータ連携 超高速開発コミュニティ20170317 クラウド時代のデータ連携 超高速開発コミュニティ
20170317 クラウド時代のデータ連携 超高速開発コミュニティ
「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは? von CData Software Japan
「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?
「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?
Wagby で100+ のクラウドデータに連携するアプリを開発(CData JDBC Drivers) von CData Software Japan
Wagby で100+ のクラウドデータに連携するアプリを開発(CData JDBC Drivers)Wagby で100+ のクラウドデータに連携するアプリを開発(CData JDBC Drivers)
Wagby で100+ のクラウドデータに連携するアプリを開発(CData JDBC Drivers)
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~ von Yuki Ando
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando948 views
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう! von CData Software Japan
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Javaアプリケーションの モダナイゼーションアプローチ von CData Software Japan
Javaアプリケーションの モダナイゼーションアプローチJavaアプリケーションの モダナイゼーションアプローチ
Javaアプリケーションの モダナイゼーションアプローチ
ニフティクラウドC4SA_ご紹介資料ver.1.1 von Satoshi Ueno
ニフティクラウドC4SA_ご紹介資料ver.1.1ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1
Satoshi Ueno868 views
20170111 超高速開発コミュニティ 新春LT von Keisuke Hikita
20170111 超高速開発コミュニティ 新春LT 20170111 超高速開発コミュニティ 新春LT
20170111 超高速開発コミュニティ 新春LT
Keisuke Hikita110 views
おすすめインフラ! for スタートアップ von Koichiro Sumi
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
Koichiro Sumi1.6K views
kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~ von CData Software Japan
kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~
kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~
技術選択とアーキテクトの役割 von Toru Yamaguchi
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Toru Yamaguchi42K views

Más de CData Software Japan

CData Sync 概要 von
CData Sync 概要CData Sync 概要
CData Sync 概要CData Software Japan
1.1K views26 Folien
RPAツールでもできるWeb API 連携 - もう画面変更でロボットが壊れるとは言わせない - von
RPAツールでもできるWeb API 連携  - もう画面変更でロボットが壊れるとは言わせない -RPAツールでもできるWeb API 連携  - もう画面変更でロボットが壊れるとは言わせない -
RPAツールでもできるWeb API 連携 - もう画面変更でロボットが壊れるとは言わせない -CData Software Japan
1.7K views13 Folien
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現 von
CData Sync × Google BigQuery  3ステップで各データソースとのデータ連携を実現CData Sync × Google BigQuery  3ステップで各データソースとのデータ連携を実現
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現CData Software Japan
886 views44 Folien
Excel × Google BigQuery CData Driver で BigQuery とのデータ連携を実現 von
Excel × Google BigQuery  CData Driver で BigQuery とのデータ連携を実現Excel × Google BigQuery  CData Driver で BigQuery とのデータ連携を実現
Excel × Google BigQuery CData Driver で BigQuery とのデータ連携を実現CData Software Japan
886 views45 Folien
ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~ von
ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~
ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~CData Software Japan
554 views18 Folien
Tableau Prep Builder で Salesforce (CRM) と DataRobot (機械学習) のデータをブレンディングしてみた von
Tableau Prep Builder で Salesforce (CRM) と DataRobot (機械学習) のデータをブレンディングしてみたTableau Prep Builder で Salesforce (CRM) と DataRobot (機械学習) のデータをブレンディングしてみた
Tableau Prep Builder で Salesforce (CRM) と DataRobot (機械学習) のデータをブレンディングしてみたCData Software Japan
2K views15 Folien

Más de CData Software Japan(20)

RPAツールでもできるWeb API 連携 - もう画面変更でロボットが壊れるとは言わせない - von CData Software Japan
RPAツールでもできるWeb API 連携  - もう画面変更でロボットが壊れるとは言わせない -RPAツールでもできるWeb API 連携  - もう画面変更でロボットが壊れるとは言わせない -
RPAツールでもできるWeb API 連携 - もう画面変更でロボットが壊れるとは言わせない -
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現 von CData Software Japan
CData Sync × Google BigQuery  3ステップで各データソースとのデータ連携を実現CData Sync × Google BigQuery  3ステップで各データソースとのデータ連携を実現
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現
Excel × Google BigQuery CData Driver で BigQuery とのデータ連携を実現 von CData Software Japan
Excel × Google BigQuery  CData Driver で BigQuery とのデータ連携を実現Excel × Google BigQuery  CData Driver で BigQuery とのデータ連携を実現
Excel × Google BigQuery CData Driver で BigQuery とのデータ連携を実現
ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~ von CData Software Japan
ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~
ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~
Tableau Prep Builder で Salesforce (CRM) と DataRobot (機械学習) のデータをブレンディングしてみた von CData Software Japan
Tableau Prep Builder で Salesforce (CRM) と DataRobot (機械学習) のデータをブレンディングしてみたTableau Prep Builder で Salesforce (CRM) と DataRobot (機械学習) のデータをブレンディングしてみた
Tableau Prep Builder で Salesforce (CRM) と DataRobot (機械学習) のデータをブレンディングしてみた
Twilio の API を SQL で操作!? 〜 CData Drivers for Twilio 製品のご紹介 〜 von CData Software Japan
Twilio の API を SQL で操作!? 〜 CData Drivers for Twilio 製品のご紹介 〜Twilio の API を SQL で操作!? 〜 CData Drivers for Twilio 製品のご紹介 〜
Twilio の API を SQL で操作!? 〜 CData Drivers for Twilio 製品のご紹介 〜
グローバルソフトウェア企業が辿り着いたkintoneを 活用した『ハイブリッド』な最適化 von CData Software Japan
グローバルソフトウェア企業が辿り着いたkintoneを 活用した『ハイブリッド』な最適化グローバルソフトウェア企業が辿り着いたkintoneを 活用した『ハイブリッド』な最適化
グローバルソフトウェア企業が辿り着いたkintoneを 活用した『ハイブリッド』な最適化
JDBCドライバで実現する Select * from クラウド von CData Software Japan
JDBCドライバで実現する Select * from クラウドJDBCドライバで実現する Select * from クラウド
JDBCドライバで実現する Select * from クラウド
FileMaker プラットフォームにSalesforceやkintoneなどクラウドデータ連携機能を拡張 von CData Software Japan
FileMaker プラットフォームにSalesforceやkintoneなどクラウドデータ連携機能を拡張FileMaker プラットフォームにSalesforceやkintoneなどクラウドデータ連携機能を拡張
FileMaker プラットフォームにSalesforceやkintoneなどクラウドデータ連携機能を拡張
I love SQL の僕がkintone のデータにSQLアクセスできる 製品をリリースするまでの道のり von CData Software Japan
I  love SQL の僕がkintone のデータにSQLアクセスできる 製品をリリースするまでの道のりI  love SQL の僕がkintone のデータにSQLアクセスできる 製品をリリースするまでの道のり
I love SQL の僕がkintone のデータにSQLアクセスできる 製品をリリースするまでの道のり

20170705 apiをつくろう

  • 1. まずはAPI を作ろう でも、使われるAPI を 2017/07/05 CData Software Japan API エコノミー友の会v2:セッション1
  • 2. See the World as a Database Speaker 疋田 圭介 • CData Software Japan 合同会社 代表社員 • Japan Web API Community の事務局 https://jwacom.connpass.com/ 経歴 • 業務データ活用一筋10年+ • 金融機関10年(内、インドネシア5年) • 開発コンポーネント企業の海外オペレーション統括3年 • CData Software の日本オペレーション立ち上げ @cdatajapan (占拠中) @keisuke.hikita.5
  • 3. See the World as a Database • 20年以上にわたりデータ関連 コンポーネントを提供 • 80+ 対応データソース • 「See the World as a Database」を ミッションにクラウドデータ への接続方法を標準化 About • CData Software, Inc. • Started: 1994 (/n software) • Location: Chapel Hill, NC • a spin-off of /n software • CData Japan: 2016/6 (JV with Infoteria)
  • 4. See the World as a Database : RDB(SQL) ⇔Web API 変換のエキスパート Data Drivers Web API を標準SQL で利用可能に JDBC/ODBC/ADO etc. API Server RDB/NoSQL/file から 超高速でREST API を自動生成
  • 5. See the World as a Database 業界最多級のデータソース
  • 6. See the World as a Database BI、帳票、ETL ツールにデータ連携機能を補完 Visual Studio, Cognos BI, Crystal Reports, ActiveReports, FileMaker Pro, Power BI, Access, Excel, Word, MicroStrategy, QlikView, QlikSense, SAP Business Object, Forguncy, StiLL, ColdFusion, Eclipse, NetBeans, IntelliJ, JBoss, Jetty, WebLogic, Yellofin BI, ASTERIA WARP, MagicSoftware, PolarisGate, SVF, Dr.Sum … and more
  • 7. See the World as a Database OEM Partners—by Global #1 players, by Japan’s #1 players
  • 8. See the World as a Database 今日は「使われるAPI を作る」話を •「API を使うプロフェッショナル」だからお話できる •まず、作りましょう •ただし、正しくつくりましょう(「これさえ押さえよう」というポイント)
  • 10. See the World as a Database 増加するPublic API & さらに多いPrivate API Private APIs が遥かに多い • モバイルバックエンド • クラウド⇔オンプレ間 • マイクロサービス • パートナーAPI • 特定顧客へのAPI など Public APIs • Saas API • Web Service API • Paas/Iaas API • 既に2万を超えるAPI が 存在し、急速に増加中 引用元 : https://www.programmableweb.com/api-research
  • 11. See the World as a Database ユーザー目線①ウェブサービスの限界 •ウェブサービスのユーザーは目でデータを取得して、次の処理を指示 •結局はコピペであって、オートメーションではない 情報取得 処理 コピペ
  • 12. See the World as a Database ユーザー目線②デバイス多様化 •ブラウザ+iOS+Android 向けに異なるバックエンドを開発? •統一されたAPI を作って開発および管理コストを下げるべき
  • 13. See the World as a Database ユーザー目線③UI を決めるのは誰? •サービスへの顧客アクセスにはUI が必要 •ブラウザを好むユーザーもいれば、モバイルアプリを好むユーザーも いるし、チャットしか使わない人も⇒複数のUI に自社対応は苦しい 同じタスク 異なるUI
  • 14. See the World as a Database ユーザー目線④他のサービスへの統合 •機能ごとに他のサービスやアプリを使うことは負担 •LINEなどよく利用されている他サービスからでも自社サービスを使えれば便利
  • 15. See the World as a Database ユーザー目線⑤サービス間の比較 •たくさんあるものから最適なものを選ぶには比較が必要 •時間やコストをかけずに比較
  • 16. See the World as a Database パートナー目線①継続性・安定性 •APIとして提供を始めると可用性・継続性・互換性が向上 •アドホック対応でこれらを満たせない 「24/365?」 「バージョンは?」「デバイスは?」
  • 17. See the World as a Database パートナー目線②エコシステムへの参入が容易 •参入が簡単な例: 「やってみようかな」→すぐに公開されたAPI ドキュ メントチェック→エンドポイント一つを動かしてみ る •参入が難しい例: 「やってみようかな」→書類を含むパートナー契約 が必要
  • 18. See the World as a Database パートナー目線③セキュリティの確保 •「ID とパスワードを下さい。スクレイピングします」 ⇒セキュリティ上推奨されない •モダンな認証(OAuth)、レートリミット、ログ管理は必須
  • 19. See the World as a Database ビジネスの拡大①モノ→コト •ハードでの差別化ではなく、サービスや体験が差別化要因に •サービス化が起これば、サービスを拡大させるためにAPI が必要に
  • 20. See the World as a Database ビジネスの拡大②データ資産の活用 •自社サービスの利用データを活用 ‧検索 ‧利用ログ ‧レコメンド ‧GPS ‧アクセス ‧グラフ •AI (Deep Learning)活用
  • 21. See the World as a Database ビジネスの拡大③ オープンイノベーション •非コア機能の他のサービスからの補完 •サービスインのスピード化 •逆に他者/他社に自社のサービスを使ってもらえればユーザーは 飛躍的に拡大 決済 メール送信 地図 検索 ファイル・ 簡易DB 電話
  • 22. See the World as a Database 「競合がすでにAPI を公開しています」
  • 23. See the World as a Database API が生み出す新しい価値は「データ連携」以上 内部API • 複数サイト、マルチクラウドを繋ぐ • モバイルのバックエンド統一 • オートメーション • マイクロサービスアーキテクチャ • AI (機械学習)の活用 • ビッグデータの活用 外部API • パートナー 間のAPI 通信 • API 公開による顧客の利便性向上 • API エコノミー構築 • オープンイノベーション 従来の 価値 新しい 価値
  • 25. See the World as a Database 「仙台弁API」を作ろう 「とてもすごい」(標準語) 「いぎなしすげぇ」(仙台弁)
  • 26. See the World as a Database 仙台弁API の最低要件 •単語レベル •標準語を投げると仙台弁が返ってくる •仙台弁を投げると標準語が返ってくる •利用者が一覧を取得可能
  • 27. See the World as a Database RDBMS API 利用先 REST API SERVER 「仙台弁API」の構成 入力システム
  • 30. See the World as a Database 設計 •主流のRESTful で •OData (JSON)で、Salesforce とかMachine Learning とかで使いやすく •OpenAPI 準拠で
  • 31. See the World as a Database 出力定義 •データの出力形式のバリエーションはほしい
  • 32. See the World as a Database ユーザー管理・セキュリティ •ユーザー認証の仕組み •IP 制限 •レートリミット •課金するための仕組み
  • 33. See the World as a Database 利用支援 •日本語ドキュメント •Swagger による標準記述も •管理コンソール •ログの取得 •通知機能
  • 36. See the World as a Database さあ、API エコノミーだ! API できた! 「公開」ポチッ 。。。あれ? API ユーザーが増えない?
  • 37. See the World as a Database API 利用者の悩み •対応したいAPI が多すぎて、手に負えない •ドキュメントが難解、API毎に記述されている内容が異なる •オフショア開発なんだけどドキュメント英語版ないの? •RDBMS/SQL ほどにAPI を扱えるエンジニアが少ない •既存ツールがRDB/SQL 対応で、JSON 対応ではない •API 仕様の変更が多すぎて管理できない •API の記述方法などの規格化が進んでいない
  • 38. See the World as a Database 後悔しないために①Lean スタート⇒目的を明確化 •目的や利用例がないとどんなAPI が最適かわからない。 •とはいえ、最初から明確にすることは不可能・コスト高い •「API ないんですか?」とはじめに言ってくれたユーザーやパー トナーと利用シナリオを明確化 •作り込む前に動くデモを •まずはPartner API で一般公開ではなくても デモAPI Partner API Public API
  • 39. See the World as a Database 後悔しないために②業界標準への対応 •さまざまな業界標準 ‧OData (まだまだ実質の標準) ‧OpenAPI (Swagger) •なぜ業界標準が重要 ‧エンジニアは業界標準に準拠してもらうと楽 ‧ETL などのツール、機械学習側でも業界標準を意識
  • 40. OData • Microsoftが主導となり推進しているプロトコル • HTTPメソッド(GET/POST/PUT/DELETE)でデータの参照更新ができ る仕様 • RESTfulな設計パターンを実装 • ODataデータソース  Power BI  Tableau  Salesforce(Lightning Connect) : • ODataエンドポイントを作成  Visual Studio (ASP.NET Web API)  Apache Olingo / Odata4j(JavaのOData Framework)  CData API Server / OData Connector  DynamicsCRMではWCFのData Servicesフレームワークに基づいて実装 ( https://msdn.microsoft.com/ja-jp/library/gg334279(v=crm.7).aspx ) http://www.odata.org/
  • 41. Open API (Swagger) http://swagger.io/ • REST APIの記述に関する仕様と、APIをコールするためのコードとド キュメントを自動生成するツール群 • Apache 2.0 License • 2015年に推進団体「Open API Initiative」が設立  The Linux Foundationの協力のもと、Microsoft, Google , IBM , Paypal, 3Scale(Redhat) , Apigee(Google) などに より結成 https://www.openapis.org/
  • 42. See the World as a Database 後悔しないために③ツール/パートナー圏の形成 パートナーやツール連携なしにAPI エコノミーは作りづらい •代表的なパートナーとの1 to 1 連携(連携サービス化) •代表的なツールETL、BI、開発ツールとの連携 ‧ETL ‧BI ‧Point-to-point ツール(Zapier、IFTTT、Micrsoft Flow etc) •ODBC Driver、JDBC Driver の提供 •SDK の提供
  • 45. See the World as a Database 手順 •SQL Server にすでに仙台弁-標準語のテーブル •API Server をダウンロード •API Server にSQL Server を接続 •sendaibenlist テーブルをリソース設定 •ユーザー認証設定 •レートリミット設定など •デプロイ
  • 46. See the World as a Database 出来上がったAPI •ドキュメント: https://cdatajapiserver.azurewebsites.net/api.rst#dbo_sendaibenlist •ユーザー認証 User : apiseminar / Auth トークン 7m3B8b8g5J2z7o7T6w9n API をたたいてみよう! •GET で一覧取得: https://cdatajapiserver.azurewebsites.net/api.rsc/dbo_sendaibenlist/ •GET でID を指定して取得(末尾の()に番号を入れる): https://cdatajapiserver.azurewebsites.net/api.rsc/dbo_sendaibenlist(<Id>) •GET で標準語を指定して取得: https://cdatajapiserver.azurewebsites.net/api.rsc/dbo_sendaibenlist?$filter=hyoujungo
  • 47. See the World as a Database 簡単な構成① WebDB (SharePoint やkintone 等)を利用 WEB DB入力ツール データ入 力 API 利用先 REST OpenAPI を自動生 成 API SERVER オンプレサーバーか Azure やAWS SaaS (クラウド) 使い慣れたツールから データ入力が可能 複雑なDB 構築や ホスティングが不 要 ポイント&クリックで接 続・API 開発が可能
  • 48. See the World as a Database 簡単な構成② クラウドストレージを利用 CLOUD STORAGE入力ツール ファイルを アップロー ド API 利用先 REST OpenAPI を自動生 成 API SERVER オンプレサーバーか Azure やAWS SaaS (クラウド)CSV ファイ ル 使い慣れたツールから データ作成 複雑なDB 構築や ホスティングが不 要 ポイント&クリックで接 続・API 開発が可能
  • 49. See the World as a Database まとめ 1. API を作ることはビジネスの成長に非常に重要 2. API は簡単に作れると思ってほしい 3. 後悔しないためには、API 開発のエレメントが膨らむ 4. 「API 管理ツール」の利用は一つの解決策
  • 50. See the World as a Database 告知: CData Day 2017 http://www.cdata.com/jp/events/cdataday17/
  • 51. See the World as a Database 告知: Enterprise IT Seminar at XLsoft ~外資IT 担当者 & グローバル案件担当向け https://www.xlsoft.com/jp/products/cdata/seminar.html