SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
CData API Server に Kong を
挟んで JWT でアクセスする
エクセルソフト株式会社
ソフトウェア事業部 新規事業開発室室⻑
⽥淵 義⼈
ytabuchi@xlsoft.com
Twitter: @ytabuchi
facebook: fb.com/ytabuchi.xlsoft
⽥淵義⼈@エクセルソフト
• 営業(セールスエンジニア) 兼 新規事業開発室室⻑
• Xamarin コミュニティエバンジェリスト
• Microsoft MVP (Developer Technologies)
• コミュニティ
• Japan Xamarin User Group 主宰
• Twitter: @ytabuchi
• facebook: ytabuchi.xlsoft
• Blog: Xamarin ⽇本語情報
• GitHub: ytabuchi
2
CData API Server
• ポイント&クリックだけでデータベースからREST API を⽣成
• 無償版(4 コア以下、MySQL サポート、商⽤利⽤可)
3
作ってみた
• MySQL に郵便局からダウンロードした 12万件の住所データ。
• CData API Server で API 作成。
• Vue.js の Web フロントエンドから住所データを検索する。
• CData API Server が MySQL のクエリを作ってくれるので、API を叩
くだけで良い。
4
SQL Query
データ
API GET
JSON データ
API アクセス
async invokeSearch(query: string): Promise<Address[]> {
const instance = axios.create({
baseURL: "http://localhost:8080/apiserver/api.rsc",
headers: {
"x-cdata-authtoken": process.env.VUE_APP_CDATATOKEN
}
});
const res: AxiosResponse = await instance.get("city");
return res.data.value;
}
5
API アクセス(パラメーター付き)
async invokeSearch(cityText: string, addressText: string): Promise<Address[]> {
const instance = axios.create({
baseURL: "http://localhost:8080/apiserver/api.rsc",
headers: {
"x-cdata-authtoken": process.env.VUE_APP_CDATATOKEN
}
});
const params = "city?" +
"$filter=" + "contains(JP_City,'" + cityText + "')" +
" AND " + "contains(JP_Address,'" + addressText + "')";
const res: AxiosResponse = await instance.get(params);
return res.data.value;
}
6
Table
<el-table :data="target.searchResult">
<el-table-column prop="Zip" label="郵便番号" />
<el-table-column prop="JP_Prefecture" label="都道府県" />
<el-table-column prop="JP_City" label="市区町村" />
<el-table-column prop="JP_Address" label="それ以下" />
<el-table-column prop="Prefecture" label="Prefecture" />
<el-table-column prop="City" label="City" />
<el-table-column prop="Address" label="Address" />
</el-table>
7
Kong
• OSS ベースの API ゲートウェイ
• https://github.com/Kong/kong
• 軽量、⾼速、⾼機能
• nginx ベース
• https://docs.konghq.com/hub/
8
9
https://github.com/Kong/kong#why-kong
10
https://docs.konghq.com/hub/
• Auth0 で JWT Token 作成
• Kong にアクセスする際に JWT Token を付与
• Kong が JWT を Auth0 に確認し、CData API Server に投げる
作ってみた
11
3) 認証2) JWT Token
1) API GET
8) JSON データ
4) API GET 5) SQL
7) JSON データ 6) データ
12
❤
解説記事
• サンプルデータがあらかじめ⼊った MySQL を Docker で作成する |
エクセルソフト ブログ
• vue.js と axios を使って Web API にアクセスする | エクセルソフト
ブログ
13
ありがとうございました
Kong も触ってみてください❤
14

Contenu connexe

Plus de Yoshito Tabuchi

Xamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれからXamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれからYoshito Tabuchi
 
Xamarinを触り始めた頃の話〜触りたい人に向けて〜
Xamarinを触り始めた頃の話〜触りたい人に向けて〜Xamarinを触り始めた頃の話〜触りたい人に向けて〜
Xamarinを触り始めた頃の話〜触りたい人に向けて〜Yoshito Tabuchi
 
2018年のXamarinの概要と活用方法
2018年のXamarinの概要と活用方法2018年のXamarinの概要と活用方法
2018年のXamarinの概要と活用方法Yoshito Tabuchi
 
20171202 Xamarinの歩き方
20171202 Xamarinの歩き方20171202 Xamarinの歩き方
20171202 Xamarinの歩き方Yoshito Tabuchi
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法Yoshito Tabuchi
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法Yoshito Tabuchi
 
Realm Mobile Platform 概要
Realm Mobile Platform 概要Realm Mobile Platform 概要
Realm Mobile Platform 概要Yoshito Tabuchi
 
Computer Vision と Translator Text API 使ってみた
Computer Vision と Translator Text API 使ってみたComputer Vision と Translator Text API 使ってみた
Computer Vision と Translator Text API 使ってみたYoshito Tabuchi
 
Xamarin から使う Azure
Xamarin から使う AzureXamarin から使う Azure
Xamarin から使う AzureYoshito Tabuchi
 
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~Yoshito Tabuchi
 
NET Standard と Xamarin
NET Standard と XamarinNET Standard と Xamarin
NET Standard と XamarinYoshito Tabuchi
 
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点Yoshito Tabuchi
 
Xamarin概要+最新情報
Xamarin概要+最新情報Xamarin概要+最新情報
Xamarin概要+最新情報Yoshito Tabuchi
 
ちょっとエモい話
ちょっとエモい話ちょっとエモい話
ちょっとエモい話Yoshito Tabuchi
 
Xamarin の概要と活用事例
Xamarin の概要と活用事例Xamarin の概要と活用事例
Xamarin の概要と活用事例Yoshito Tabuchi
 
Xamarinをこれから始める皆様へ
Xamarinをこれから始める皆様へXamarinをこれから始める皆様へ
Xamarinをこれから始める皆様へYoshito Tabuchi
 
BlueMonkeyプロジェクトのご紹介
BlueMonkeyプロジェクトのご紹介BlueMonkeyプロジェクトのご紹介
BlueMonkeyプロジェクトのご紹介Yoshito Tabuchi
 
Xamarin 概要 2017/01/15
Xamarin 概要 2017/01/15Xamarin 概要 2017/01/15
Xamarin 概要 2017/01/15Yoshito Tabuchi
 

Plus de Yoshito Tabuchi (20)

Xamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれからXamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれから
 
Xamarinを触り始めた頃の話〜触りたい人に向けて〜
Xamarinを触り始めた頃の話〜触りたい人に向けて〜Xamarinを触り始めた頃の話〜触りたい人に向けて〜
Xamarinを触り始めた頃の話〜触りたい人に向けて〜
 
2018年のXamarinの概要と活用方法
2018年のXamarinの概要と活用方法2018年のXamarinの概要と活用方法
2018年のXamarinの概要と活用方法
 
20171202 Xamarinの歩き方
20171202 Xamarinの歩き方20171202 Xamarinの歩き方
20171202 Xamarinの歩き方
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法
 
Realm Mobile Platform 概要
Realm Mobile Platform 概要Realm Mobile Platform 概要
Realm Mobile Platform 概要
 
Computer Vision と Translator Text API 使ってみた
Computer Vision と Translator Text API 使ってみたComputer Vision と Translator Text API 使ってみた
Computer Vision と Translator Text API 使ってみた
 
Xamarin から使う Azure
Xamarin から使う AzureXamarin から使う Azure
Xamarin から使う Azure
 
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
 
NET Standard と Xamarin
NET Standard と XamarinNET Standard と Xamarin
NET Standard と Xamarin
 
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
 
Xamarin概要+最新情報
Xamarin概要+最新情報Xamarin概要+最新情報
Xamarin概要+最新情報
 
ちょっとエモい話
ちょっとエモい話ちょっとエモい話
ちょっとエモい話
 
Xamarin の概要と活用事例
Xamarin の概要と活用事例Xamarin の概要と活用事例
Xamarin の概要と活用事例
 
Xamarinをこれから始める皆様へ
Xamarinをこれから始める皆様へXamarinをこれから始める皆様へ
Xamarinをこれから始める皆様へ
 
Xamarin概要
Xamarin概要Xamarin概要
Xamarin概要
 
BlueMonkeyプロジェクトのご紹介
BlueMonkeyプロジェクトのご紹介BlueMonkeyプロジェクトのご紹介
BlueMonkeyプロジェクトのご紹介
 
Xamarin 概要 2017/01/15
Xamarin 概要 2017/01/15Xamarin 概要 2017/01/15
Xamarin 概要 2017/01/15
 
Xamarin 概要
Xamarin 概要Xamarin 概要
Xamarin 概要
 

CData API Server に Kong を挟んで JWT でアクセスする

  • 1. CData API Server に Kong を 挟んで JWT でアクセスする エクセルソフト株式会社 ソフトウェア事業部 新規事業開発室室⻑ ⽥淵 義⼈ ytabuchi@xlsoft.com Twitter: @ytabuchi facebook: fb.com/ytabuchi.xlsoft
  • 2. ⽥淵義⼈@エクセルソフト • 営業(セールスエンジニア) 兼 新規事業開発室室⻑ • Xamarin コミュニティエバンジェリスト • Microsoft MVP (Developer Technologies) • コミュニティ • Japan Xamarin User Group 主宰 • Twitter: @ytabuchi • facebook: ytabuchi.xlsoft • Blog: Xamarin ⽇本語情報 • GitHub: ytabuchi 2
  • 3. CData API Server • ポイント&クリックだけでデータベースからREST API を⽣成 • 無償版(4 コア以下、MySQL サポート、商⽤利⽤可) 3
  • 4. 作ってみた • MySQL に郵便局からダウンロードした 12万件の住所データ。 • CData API Server で API 作成。 • Vue.js の Web フロントエンドから住所データを検索する。 • CData API Server が MySQL のクエリを作ってくれるので、API を叩 くだけで良い。 4 SQL Query データ API GET JSON データ
  • 5. API アクセス async invokeSearch(query: string): Promise<Address[]> { const instance = axios.create({ baseURL: "http://localhost:8080/apiserver/api.rsc", headers: { "x-cdata-authtoken": process.env.VUE_APP_CDATATOKEN } }); const res: AxiosResponse = await instance.get("city"); return res.data.value; } 5
  • 6. API アクセス(パラメーター付き) async invokeSearch(cityText: string, addressText: string): Promise<Address[]> { const instance = axios.create({ baseURL: "http://localhost:8080/apiserver/api.rsc", headers: { "x-cdata-authtoken": process.env.VUE_APP_CDATATOKEN } }); const params = "city?" + "$filter=" + "contains(JP_City,'" + cityText + "')" + " AND " + "contains(JP_Address,'" + addressText + "')"; const res: AxiosResponse = await instance.get(params); return res.data.value; } 6
  • 7. Table <el-table :data="target.searchResult"> <el-table-column prop="Zip" label="郵便番号" /> <el-table-column prop="JP_Prefecture" label="都道府県" /> <el-table-column prop="JP_City" label="市区町村" /> <el-table-column prop="JP_Address" label="それ以下" /> <el-table-column prop="Prefecture" label="Prefecture" /> <el-table-column prop="City" label="City" /> <el-table-column prop="Address" label="Address" /> </el-table> 7
  • 8. Kong • OSS ベースの API ゲートウェイ • https://github.com/Kong/kong • 軽量、⾼速、⾼機能 • nginx ベース • https://docs.konghq.com/hub/ 8
  • 11. • Auth0 で JWT Token 作成 • Kong にアクセスする際に JWT Token を付与 • Kong が JWT を Auth0 に確認し、CData API Server に投げる 作ってみた 11 3) 認証2) JWT Token 1) API GET 8) JSON データ 4) API GET 5) SQL 7) JSON データ 6) データ
  • 13. 解説記事 • サンプルデータがあらかじめ⼊った MySQL を Docker で作成する | エクセルソフト ブログ • vue.js と axios を使って Web API にアクセスする | エクセルソフト ブログ 13