SlideShare a Scribd company logo
1 of 15
RESTful APIのご紹介
アルファサード株式会社
フロントエンドエンジニア 藤本 裕考
PowerCMS Xの RESTful API ⽤のエンドポイントに対して
クライアント等のシステムからリクエストを送信することで
PowerCMS X に登録された情報を取得・変更・登録・検索する事が可能と
なります。
クライアント(ブラウザ等) PowerCMS X
リクエスト
レスポンス(JSON)
RESTful API の概要
準備
1. エンドポイントのアクセス設定
2. CMS管理画⾯で「有効化」の設定
■エンドポイントのパス
https://example.com/powercmsx/api/
■認証(authentication)エンドポイント
https://example.com/powercmsx/api/バージョン/authentication
■それ以外のエンドポイント
https://example.com/powercmsx/api/バージョン/スコープID/モデル名/メソッド/オ
ブジェクトID(オプション)?キー1=値1&キー2=値2...
PowerCMS X での利用方法
エンドポイントから返却される登録情報のオブジェクトJSONの形式
{
"id" : "オブジェクトID",
"カラム名1" : "カラム1の値",
"カラム名2" : "カラム2の値"
}
返却される値
リレーションを含むオブジェクトJSONの形式
{
"id" : "オブジェクトID",
"カラム名1" : "カラム1の値",
"数値型単⼀リレーションカラム" : {
"id" : "オブジェクトID",
"カラム名1" : "カラム1の値",
"カラム名2" : "カラム2の値"
},
"複数リレーション型カラム" : [
{
"id" : "オブジェクトID",
"カラム名1" : "カラム1の値",
"カラム名2" : "カラム2の値"
},
{
"id" : "オブジェクトID",
"カラム名1" : "カラム1の値",
"カラム名2" : "カラム2の値"
}
]
}
返却される値
エンドポイントのメソッドには以下の種類があります。
エンドポイントの種類
エンドポイント名 機能
authentication 認証⽤
scheme モデルのスキーマを取得
get 単⼀オブジェクトを返却
list オブジェクトの⼀覧を返却
insert オブジェクトの新規作成
update オブジェクトの更新
delete オブジェクトの削除
token フォームの⼀時トークンを返却 ※1
confirm フォームのバリデーション結果を返却 ※1
submit フォームの投稿 ※1
search 全⽂検索の結果を返却 ※2
※1 モデル「contact」に対してのみ有効
※2 プラグイン「SearchEstraier」が有効な場合のみ有効
RESTful API JavaScript SDK のご紹介
PowerCMS Xの RESTful API を使⽤するにあたって
JavaScript SDKを公開しています。
RESTful API JavaScript SDK
• アプリや他のサービスとのスムーズな連携
• Jamstack によるコンテンツの配信
• 検索やフォームなどの動的コンテンツの提供
• etc…
GitHub https://github.com/alfasado/pt-restful-api-client
ワークスペースID1の記事⼀覧を取得する場合
RESTful API JavaScript SDK 記述例1
const client = new PTRESTfulAPIClient('/powercmsx/api', 1); // 引数: APIパス、バージョン
const params = {
sort_by: 'published_on',
sort_order: 'desc'
};
const response = await client.listObjects('entry', 1, params); // 引数: モデル名, ワークスペースID,
パラメーター
const json = await response.json();
// json.itemsにモデルのオブジェクト⼀覧が格納されている
※ await を使用しているので非同期関数の中で使用します。
async function getList() {
const response = await client.listObjects('entry', 1);
const json = await response.json();
}
ワークスペースID1・entryモデルにあるIDが2の記事を取得する場合
RESTful API JavaScript SDK 記述例2
const response = await client.getObject('entry', 2, 1); // 引数: モデル名, オブジェクトのID, ワークスペ
ースID
const entry = await response.json();
// entryに記事オブジェクトが格納されている
ワークスペースID1のentryモデルに新規記事を登録する場合
RESTful API JavaScript SDK 記述例3
const client = new PTRESTfulAPIClient('/powercmsx/api', 1);
// 認証
const name = 'username';
const password = 'password';
const authResponse = await client.authentication(name, password);
const authData = await authResponse.json();
const token = authData.access_token;
// 投稿する情報
const data = {
title: 'Hello World!',
text: '本⽂を⼊⼒します。',
basename: 'hello_world',
status: 4,
};
const response = await client.createObject('entry', 1, token, data); // 引数: モデル名, ワークスペースID, トークン,
リクエストボディ
メソッド⼀覧
RESTful API JavaScript SDK で利用可能なメソッド
メソッド名( client.method ) 機能
authentication ユーザー認証を実⾏します
getScheme スキーマの取得を⾏います
createObject オブジェクトを作成します
listObjects オブジェクト⼀覧を取得します
getObject オブジェクトを取得します
updateObject オブジェクトを更新します
deleteObject オブジェクトを削除します
getContactToken コンタクト(フォーム)のトークンを取得します
confirmContact コンタクト(フォーム)データのバリデーションを実⾏します
submitContact コンタクト(フォーム)データを送信します
searchObjects 全⽂検索(SearchEstraierプラグイン)を実⾏します
runFetch Fetch APIの呼び出しを⾏います。任意のエンドポイント(プラグイン
で拡張したエンドポイントなど)に対してリソース取得が可能なメソッ
ドです。引数に応じて適切なリクエストを発⾏します。
RESTful API のドキュメント
RESTful API ドキュメント
https://powercmsx.jp/about/restful_api.html
RESTful API JavaScript SDK
https://github.com/alfasado/pt-restful-api-client
RESTful API のドキュメント
本⽇はありがとうございました

More Related Content

What's hot

Movable typeseminar 20120925
Movable typeseminar 20120925Movable typeseminar 20120925
Movable typeseminar 20120925
Six Apart
 
[MW06] PaaS を活用した、ハイコストパフォーマンスなウェブサイト構築・運用・メンテナンス
[MW06] PaaS を活用した、ハイコストパフォーマンスなウェブサイト構築・運用・メンテナンス[MW06] PaaS を活用した、ハイコストパフォーマンスなウェブサイト構築・運用・メンテナンス
[MW06] PaaS を活用した、ハイコストパフォーマンスなウェブサイト構築・運用・メンテナンス
de:code 2017
 
Vs2013 multi device shosuz
Vs2013 multi device shosuzVs2013 multi device shosuz
Vs2013 multi device shosuz
Shotaro Suzuki
 
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョンWeb アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Akira Inoue
 

What's hot (16)

Movable typeseminar 20120925
Movable typeseminar 20120925Movable typeseminar 20120925
Movable typeseminar 20120925
 
[MW06] PaaS を活用した、ハイコストパフォーマンスなウェブサイト構築・運用・メンテナンス
[MW06] PaaS を活用した、ハイコストパフォーマンスなウェブサイト構築・運用・メンテナンス[MW06] PaaS を活用した、ハイコストパフォーマンスなウェブサイト構築・運用・メンテナンス
[MW06] PaaS を活用した、ハイコストパフォーマンスなウェブサイト構築・運用・メンテナンス
 
[AC10] Azure Stack パート2 ~企業が求めるこれからのハイブリッドクラウド設計~
[AC10] Azure Stack パート2 ~企業が求めるこれからのハイブリッドクラウド設計~[AC10] Azure Stack パート2 ~企業が求めるこれからのハイブリッドクラウド設計~
[AC10] Azure Stack パート2 ~企業が求めるこれからのハイブリッドクラウド設計~
 
クライムどこでもセミナー:『どこから調査する?』の悩みを解消!失敗しない仮想化DB監視術
クライムどこでもセミナー:『どこから調査する?』の悩みを解消!失敗しない仮想化DB監視術クライムどこでもセミナー:『どこから調査する?』の悩みを解消!失敗しない仮想化DB監視術
クライムどこでもセミナー:『どこから調査する?』の悩みを解消!失敗しない仮想化DB監視術
 
Gaeja20121130
Gaeja20121130Gaeja20121130
Gaeja20121130
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
[SC13] ログ管理で向上させるセキュリティ
[SC13] ログ管理で向上させるセキュリティ[SC13] ログ管理で向上させるセキュリティ
[SC13] ログ管理で向上させるセキュリティ
 
Reflex works20120818 1
Reflex works20120818 1Reflex works20120818 1
Reflex works20120818 1
 
Vs2013 multi device shosuz
Vs2013 multi device shosuzVs2013 multi device shosuz
Vs2013 multi device shosuz
 
WordPress 使いのためのMicrosoft Azure 超入門
WordPress 使いのためのMicrosoft Azure 超入門 WordPress 使いのためのMicrosoft Azure 超入門
WordPress 使いのためのMicrosoft Azure 超入門
 
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョンWeb アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
 
JAWS-UG CLI専門支部 #74 Amazon Kinesis Firehose 入門
JAWS-UG CLI専門支部 #74 Amazon Kinesis Firehose 入門JAWS-UG CLI専門支部 #74 Amazon Kinesis Firehose 入門
JAWS-UG CLI専門支部 #74 Amazon Kinesis Firehose 入門
 
IBM Cloud 2017年 振り返り
IBM Cloud 2017年 振り返りIBM Cloud 2017年 振り返り
IBM Cloud 2017年 振り返り
 
JAWS-UG CLI専門支部 #81 EC2 Systems Manager 入門
JAWS-UG CLI専門支部 #81 EC2 Systems Manager 入門JAWS-UG CLI専門支部 #81 EC2 Systems Manager 入門
JAWS-UG CLI専門支部 #81 EC2 Systems Manager 入門
 
[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーション[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーション
 
[Japan Tech summit 2017] MAI 002
[Japan Tech summit 2017]  MAI 002[Japan Tech summit 2017]  MAI 002
[Japan Tech summit 2017] MAI 002
 

Similar to 「Restful API」

20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public
Amazon Web Services Japan
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
 
[AWSマイスターシリーズ]Identity and Access Management (IAM)
[AWSマイスターシリーズ]Identity and Access Management (IAM)[AWSマイスターシリーズ]Identity and Access Management (IAM)
[AWSマイスターシリーズ]Identity and Access Management (IAM)
Amazon Web Services Japan
 

Similar to 「Restful API」 (20)

未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
 
20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public
 
ログ管理のベストプラクティス
ログ管理のベストプラクティスログ管理のベストプラクティス
ログ管理のベストプラクティス
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
 
英国オープンバンキング技術仕様の概要
英国オープンバンキング技術仕様の概要英国オープンバンキング技術仕様の概要
英国オープンバンキング技術仕様の概要
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
Kinesis3 notes
Kinesis3 notesKinesis3 notes
Kinesis3 notes
 
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
 
クラウドネイティブ化する未来
クラウドネイティブ化する未来クラウドネイティブ化する未来
クラウドネイティブ化する未来
 
AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版
 
AWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS AmplifyAWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS Amplify
 
[AWSマイスターシリーズ]Identity and Access Management (IAM)
[AWSマイスターシリーズ]Identity and Access Management (IAM)[AWSマイスターシリーズ]Identity and Access Management (IAM)
[AWSマイスターシリーズ]Identity and Access Management (IAM)
 
20191031_Amazon Api Gateway
20191031_Amazon Api Gateway20191031_Amazon Api Gateway
20191031_Amazon Api Gateway
 
OpenStack API
OpenStack APIOpenStack API
OpenStack API
 
AWS Black Belt Online Seminar 2017 EC2 Windows
AWS Black Belt Online Seminar 2017 EC2 WindowsAWS Black Belt Online Seminar 2017 EC2 Windows
AWS Black Belt Online Seminar 2017 EC2 Windows
 
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回
 
アマゾンクラウドの真価
アマゾンクラウドの真価アマゾンクラウドの真価
アマゾンクラウドの真価
 
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
 
GraphQL入門 (AWS AppSync)
GraphQL入門 (AWS AppSync)GraphQL入門 (AWS AppSync)
GraphQL入門 (AWS AppSync)
 
20090606
2009060620090606
20090606
 

Recently uploaded

Recently uploaded (7)

境外手机卡商城【☆购买网站:fk578.com】【☆购买网址:fk578.com☆】☆☆快手账号交易平台
境外手机卡商城【☆购买网站:fk578.com】【☆购买网址:fk578.com☆】☆☆快手账号交易平台境外手机卡商城【☆购买网站:fk578.com】【☆购买网址:fk578.com☆】☆☆快手账号交易平台
境外手机卡商城【☆购买网站:fk578.com】【☆购买网址:fk578.com☆】☆☆快手账号交易平台
 
失忆方法迷幻药【购买网址: GHB1.com】 拍肩粉货到付款购买【商城网址: 91miwan.com☆】
失忆方法迷幻药【购买网址:  GHB1.com】 拍肩粉货到付款购买【商城网址:  91miwan.com☆】失忆方法迷幻药【购买网址:  GHB1.com】 拍肩粉货到付款购买【商城网址:  91miwan.com☆】
失忆方法迷幻药【购买网址: GHB1.com】 拍肩粉货到付款购买【商城网址: 91miwan.com☆】
 
购买官网听话水【购买网址: GHB1.com】 迷幻药货到付款【商城网址: 91miwan.com☆】
购买官网听话水【购买网址:  GHB1.com】 迷幻药货到付款【商城网址:  91miwan.com☆】购买官网听话水【购买网址:  GHB1.com】 迷幻药货到付款【商城网址:  91miwan.com☆】
购买官网听话水【购买网址: GHB1.com】 迷幻药货到付款【商城网址: 91miwan.com☆】
 
sm支付宝号购买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】抖音小号自动发号
sm支付宝号购买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】抖音小号自动发号sm支付宝号购买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】抖音小号自动发号
sm支付宝号购买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】抖音小号自动发号
 
QQ实名号自助购买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】实名微博号购买商城
QQ实名号自助购买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】实名微博号购买商城QQ实名号自助购买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】实名微博号购买商城
QQ实名号自助购买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】实名微博号购买商城
 
微信白号怎么买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】soul账号交易平台
微信白号怎么买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】soul账号交易平台微信白号怎么买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】soul账号交易平台
微信白号怎么买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】soul账号交易平台
 
微信实名号哪里买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】soul实名账号批发
微信实名号哪里买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】soul实名账号批发微信实名号哪里买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】soul实名账号批发
微信实名号哪里买【☆出售网址:fk578。com☆】【☆购买网址:fk578。com☆】soul实名账号批发
 

「Restful API」