Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GraphQL入門

K.Mori
January 29, 2020

 GraphQL入門

社内勉強会での資料です。 #GraphQL #RESTful #SOAP

K.Mori

January 29, 2020
Tweet

More Decks by K.Mori

Other Decks in Technology

Transcript

  1. <SOAP-ENV:Envelope xmlns:SOAP- ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <getBooks xmlns="http://hogehoge.com/books"> <BookId>810</BookId> </getBooks> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

    <SOAP-ENV:Envelope xmlns:SOAP- ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <getBooksResponse xmlns="http://warehouse.example.com/ws"> <getBooksResult> <BookName>Ocha no hon</BookName> <BookId>810</BookId> <author>Ocha-Hakase</author> <price>1000</price> </getBooksResult> </getBooksResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> あ ID Request Response
  2. RESTful API ◦ RESTful API: REST Web HTTP ◦ REST:

    Representational State Transfer ◦ ◦ Stateless ◦ URI Addressability ◦ HTTP Uniform Interface ◦ 、 Connectability ◦
  3. RESTful API ◦ Response ◦ あ API ◦ Response ◦

    ◦ ◦ ◦ ISBN ◦ ◦ ◦ URI あ7 ◦ …
  4. RESTful API ◦ ◦ あ API ◦ Response ◦ ◦

    ◦ ◦ ISBN ◦ ◦ ◦ URI あ7 ◦ 7 API い
  5. RESTful API ◦ ◦ あ API ◦ Response ◦ ◦

    ◦ ◦ ISBN ◦ ◦ ◦ URI あ7 ◦ ◦ ◦ 3 ◦ … API
  6. GraphQL ◦ 2012 Facebook ◦ 2015 9 4 ◦ REST

    Web API ◦ Facebook Twitter, GitHub, Airbnb, New York Times, Netflix Web ◦ ◦ …い
  7. Request query { book(authorID:334) { authorName writtenBooks { books {

    title price } } } } authorID=334 authorName: books: ➔ title( ) price( )
  8. Response 3 { "data": { "book": { "authorName": "Hanshin Taro",

    "writtenBooks": { "books": [ { "title": "Baseball Hero vol.1", "price": 1200 }, { "title": "Baseball Hero vol.6", "price": 1200 }, { "title": "Baseball Hero vol.7", "price": 1800 } ] } } } } { "title": "Baseball Hero vol.2", "price": 1200 }, { "title": "Baseball Hero vol.3", "price": 1300 }, { "title": "Baseball Hero vol.4", "price": 1200 }, { "title": "Baseball Hero vol.5", "price": 1400 }, SOAP い
  9. ”Graph” query { book(authorID:334) { authorName writtenBooks { books {

    title price } } } } Query book authorName writtenBooks books price title