WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016
-
Upload
- -
Category
Technology
-
view
1.934 -
download
2
Transcript of WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Takayuki Shimizu @shimy_net Solutions Architect, Amazon Web Services Japan K.K. July 10, 2016
D : GG IA && MDC & HWordCamp Kansai 2016
& DIH .• I MI 0 QRVbIWN
&• n l• HHE GA : G C H G C H
RLT J 53) f f f 1 5 1 5 1 Kb RWN R f 2RTN R Q 4bWJV 42f @b QJP J C R LQ 1 VJ R W
T l _a
AWS IoT
T
What to Expect from the Session
1. REST API ? 2. j WordPress 3. Amazon API Gateway ? 4. j j REST API 5. WordPress j 6.
• N NW J R WJU J N JW ON
• B b RNUMRWP u GNK j (
• B5CD 1@9 B5CDO U qr
REST API m R
Resources
• BN LN p x• • j•
• BN LN EB9• EB9 u BN LN• EB9 j ( (
• g n o ” ug n o” x q
URI
• WRO V N LN MNW RdN
• BN LN• mQ . J R NaJV UN L V N LN ()
• • pv BN LN p q• EB9 u q u l m
HTTP method
• EB9 j rt• DD@ y q• 5D @?CD @ED 45 5D5 s @1D3
mp5D j B514
@?CD j 3B51D5@ED j l EB9m
j l EB9mE@41D53B51D5
45 5D5 j 45 5D5@1D3 j E@41D5
HTTP status code “ T “ T
) ? g 5D j
) ( 3B51D54 g v y j uy
@?CD j
) ? 3? D5 D ugu q
45 5D5
214 B5AE5CD h ustq
y q qg
:C? j ust q( E 1ED ?B9H54 u u EB g
?B29445 j “ u y q j
?D ?E 4 j u t t q j “ 5D- 3? B93D j i r j u
j j
, 9 D5B 1 C5BF5B5BB?B
j j j j
Stateless
• j q
• l m pfix
• q j u
Stateful
y eu rg
T R
bid
R
T bid
l e lf_R
lf
T T bid
Stateless
T T bid
T T lbid
T T mT lbid
T T mT lbid
y eu rg
T R
R
l e lf_R
lf
API proliferation
The number of published APIs is growing rapidly
2418
10302
0
2000
4000
6000
8000
10000
12000
Jun-
05
Oct
-05
Feb-
06
Jun-
06
Oct
-06
Feb-
07
Jun-
07
Oct
-07
Feb-
08
Jun-
08
Oct
-08
Feb-
09
Jun-
09
Oct
-09
Feb-
10
Jun-
10
Oct
-10
Feb-
11
Jun-
11
Oct
-11
Feb-
12
Jun-
12
Oct
-12
Feb-
13
Jun-
13
Oct
-13
* Data from ProgrammableWeb
WordPress o T fzo R
Weather information
3rd party API
• 2JLTNWM ! I NV NIPN I NV NI N L
• W NWM !1SJa R Q SA N b 1WP UJ :C BNJL N L
T t s
JSON 3rd party API
Browser
HTML
Browser
3rd party API
HTML
JSON
• 2JLTNWM ! I NV NIPN I NV NI N L
• W NWM !1SJa R Q SA N b 1WP UJ :C BNJL N L
b 3rd party API z cl n
JSON
Browser
HTML
Browser
HTML
JSON
3rd party API
3rd party API 3rd party API
3rd party API
3rd party API 3rd party API
API U “ fzp
1@9 j
1@9 g
1@9
1@9 t
s
Amazon API Gateway
Amazon API Gateway l API b
j j
1@9 j
sw 1GC CRPF
1GC JVKMJ u
rrlp im
Internet
Mobile Apps
Websites
Services
AWS
ELB
T Tv“
Amazon API Gateway ny
Internet
Mobile Apps
Websites
Services
API Gateway
AWS Lambda functions
AWS
API Gateway Cache
Amazon CloudWatch
Amazon DynamoDB
Endpoints on Amazon EC2 /
Amazon Elastic
Beanstalk
Any other publicly accessible endpoint
Amazon API Gateway ny
Internet
Mobile Apps
Websites
Services
API Gateway
AWS Lambda functions
AWS
API Gateway Cache
Amazon CloudWatch
Amazon DynamoDB
Endpoints on Amazon EC2 /
Amazon Elastic
Beanstalk
Any other publicly accessible endpoint
wz T T(IaaS) n “ T
“ T “ T
T”“
Case 1. API PHP l T e WP o
JSON HTML
Browser
4bWJV 42DJKUN c HGe
JVKMJ WL R Wc H HGe
1@9 GE HG 5D
&
H &
H GDI
H O . H D:
Lambda Function “getPets”
j j t
DynamoDB Table “Pets”
j j sv
API Endpoint
@?CD 1
wp_remote_get() l API _y T
l eh T
& fzpo S
Case 2. JavaScript l T ek WP o
JSON
HTML
Browser
JavaScript
4bWJV 42DJKUN c HGe
JVKMJ WL R Wc H HGe
1@9 GE HG 5D
&
JavaScript
Cross-Origin Request is Blocked !
Browser
4bWJV 42DJKUN c HGe
JVKMJ WL R Wc H HGe
1@9 GE HG 5D
A-site / CW
B-siteCORS A-site :
Enable CORS 1@9 j u 1@9 t w g j
y 3 ? RPRW BN LN CQJ RWP !3?BC up h
J EH l eh T
S3 EC2 CloudFront
API Gateway Lambda DynamoDB
StaticPress
REST API
Browser
JavaScript
Amazon API Gateway
Internet
Mobile Apps
Websites
Services
API Gateway
AWS Lambda functions
AWS
API Gateway Cache
Amazon CloudWatch
Amazon DynamoDB
Endpoints on Amazon EC2 /
Amazon Elastic
Beanstalk
Any other publicly accessible endpoint
Case 3. API “ ek hn API
Custom API Origin API
A N b C RWPBNZ N NJMN
C J 3 MNBN W N NJMN
Stock API
Map API
Weather API 1@9
Custom API
HTTP Proxy
WP REST API m R
• j w g DD@ j B5CD 1@9
• G M@ N j jg g jgj DD@ x g
j x u
http://v2.wp-api.org/ j
p o
REST API
JSON WP REST API
Frontend Backend
iOS
Android
Tablet
Fire
Android
iOS
Tablet
GET /wp-json/wp/v2/posts
“ n ma
WP REST API GET /wp-json/wp/v2/posts
WP REST API
“ ma
GET /wp-json/wp/v2/posts
Case 4. v“ l
API Gateway
API Gateway Cache
Amazon CloudWatch
GET /wp-json/wp/v2/posts
WP REST API
P“
rmt
• B5CD 1@9
• G M@ N B5CD 1@9 j• l@ @m• l:J_JCL R m• DD@ @ ab 1@9• G@ B5CD 1@9 k
• CN _N UN G M@ N /
S
Thank you !