WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

53
Takayuki Shimizu @shimy_net Solutions Architect, Amazon Web Services Japan K.K. July 10, 2016 D):)GG IA & &%MDC & H./ WordCamp Kansai 2016

Transcript of WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

Page 1: 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

Page 2: WordPress RESTful API & Amazon API Gateway - WordCamp 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

Page 3: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

T l _a

AWS IoT

T

Page 4: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

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. 

Page 5: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

•  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

Page 6: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

Resources

•  BN LN p x• •  j• 

•  BN LN EB9•  EB9 u BN LN•  EB9 j ( (

•  g n o ” ug n o” x q

Page 7: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

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

Page 8: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

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

Page 9: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

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

Page 10: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

Stateless

•  j q

•  l m pfix

•  q j u

Page 11: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

Stateful

y eu rg

T R

bid

R

T bid

l e lf_R

lf

T T bid

Page 12: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

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

Page 13: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

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

Page 14: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

WordPress o T fzo R

Weather information

3rd party API

Page 15: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

•  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

Page 16: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

•  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

Page 17: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

API U “ fzp

1@9 j

1@9 g

1@9

1@9 t

s

Page 18: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

Amazon API Gateway

Page 19: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

Amazon API Gateway l API b

j j

1@9 j

sw 1GC CRPF

1GC JVKMJ u

Page 20: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

rrlp im

Internet

Mobile Apps

Websites

Services

AWS

ELB

T Tv“

Page 21: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

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

Page 22: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

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

Page 23: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

wz T T(IaaS) n “ T

“ T “ T

T”“

Page 24: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

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

&

Page 25: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

H &

Page 26: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

H GDI

Page 27: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

H O . H D:

Page 28: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

Lambda Function “getPets”

j j t

Page 29: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

DynamoDB Table “Pets”

j j sv

Page 30: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

API Endpoint

@?CD 1

Page 31: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

wp_remote_get() l API _y T

Page 32: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

l eh T

Page 33: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

& fzpo S

Page 34: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

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

&

Page 35: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

JavaScript

Page 36: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

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 :

Page 37: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

Enable CORS 1@9 j u 1@9 t w g j

y 3 ? RPRW BN LN CQJ RWP !3?BC up h

Page 38: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

J EH l eh T

Page 39: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016
Page 40: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

S3 EC2 CloudFront

API Gateway Lambda DynamoDB

StaticPress

REST API

Browser

JavaScript

Page 41: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

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

Page 42: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

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

Page 43: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

HTTP Proxy

Page 44: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

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

Page 45: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

p o

REST API

JSON WP REST API

Frontend Backend

iOS

Android

Tablet

Fire

Android

iOS

Tablet

Page 46: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

GET /wp-json/wp/v2/posts

Page 47: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

“ n ma

WP REST API GET /wp-json/wp/v2/posts

Page 48: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

WP REST API

“ ma

GET /wp-json/wp/v2/posts

Page 49: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

Case 4. v“ l

API Gateway

API Gateway Cache

Amazon CloudWatch

GET /wp-json/wp/v2/posts

WP REST API

Page 50: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

P“

Page 51: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

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 /

Page 52: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

S

Page 53: WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016

Thank you !