Slide 1

Slide 1 text

$PEFHFO͸೉͘͠ͳ͍ 48"((&3͔Β+BWB4DSJQU 5ZQF4DSJQU ίʔυΛࣗಈੜ੒ͯ͠ ίʔσΟϯάΛޮ཰Խ͠Α͏ Automatically generate JavaScript ( TypeScript ) code to improve coding efficiency! !XBLBNTIB /BPLJ:"."%" 6*5

Slide 2

Slide 2 text

ϘΠϥʔϓϨʔτ ఆܕతͳίʔυͨͪ

Slide 3

Slide 3 text

ϘΠϥʔϓϨʔτ w ϘΠϥʔϓϨʔτఆܕతͳίʔυ w ΞϓϦέʔγϣϯ։ൃΛ͍ͯ͠Δͱ͠͹͠͹ૺ۰͕ͪ͠ w XFCΞϓϦέʔγϣϯ։ൃͩͱ 3&45 "1*ΫϥΠΞϯτ ૄ௨෦෼ w 5ZQF4DSJQUͳΒ"1*ϦΫΤετϨεϙϯεΦϒδΣΫτͷܕఆٛϑΝΠϧ w ͜ΕΒ͸ΞϓϦέʔγϣϯن໛ʹൺྫͯ͠૿͍͑ͯ͘

Slide 4

Slide 4 text

TS Endpoint 1 TS Endpoint 2 TS Endpoint 3

Slide 5

Slide 5 text

48"((&3 THE WORLD’S MOST POPULAR API TOOLING

Slide 6

Slide 6 text

48"((&3 w 3&45GVM"1*Λߏங͢ΔͨΊͷ044ϑϨʔϜϫʔΫ w 4XBHHFS4QFD0QFO"1*ͱ͍͏࢓༷ʹ४ͯ͡ॻ͔ΕͨυΩϡϝϯτ w 4XBHHFS6*4XBHHFS4QFDͰॻ͔ΕͨEPD͔Β)5.-ϖʔδΛੜ੒ w 4XBHHFS$PEFHFOEPD͔Β"1*ελϒ΍ΫϥΠΞϯταʔόͷίʔυΛੜ੒ w FUDʜ

Slide 7

Slide 7 text

48"((&3$0%&(&/ Generating server stubs and client SDKs from your OpenAPI specification

Slide 8

Slide 8 text

w 4XBHHFS4QFDͰهड़͞ΕͨυΩϡϝϯτ͔ΒΫϥΠΞϯταʔόͷ ίʔυΛੜ੒͢ΔίϚϯυϥΠϯπʔϧ w "1*ελϒσʔλ΋ੜ੒Ͱ͖Δ w +BWB .BWFO Ͱಈ࡞͢Δ w (SPPWZ΋࢖͑Δ 48"((&3$0%&(&/

Slide 9

Slide 9 text

w ίʔυੜ੒ϩδοΫ͸ΧελϚΠζՄೳ͕ͩɺॻ͖΍͍͢ͱ͸ݴ͍೉͍ w +BWB(SPPWZʹڧ͍ਓͳΒ·ͩ͠΋ɺ+4೴ͷਓʹ͸গʑෑډ͕ߴ͍ΑͶʜʁ 48"((&3$0%&(&/

Slide 10

Slide 10 text

͜͜͸ࢥ͍੾ͬͯ$PEFHFOΛࣗ࡞ͯ͠ΈΑ͏͡Όͳ͍͔

Slide 11

Slide 11 text

openapi: 3.0.1 paths: /pets: get: summary: Get pet list operationId: pets/index tags: - pets responses: $ref: '#/components/responses/PetsIndex' post: summary: Create new pet operationId: Pets/create tags: - pets requestBody: $ref: '#/components/requestBodies/PetsCreate' responses: $ref: '#/components/responses/PetsCreate' components: schemas: Pet: type: object required: - id - name properties: id: type: integer format: int32 Swagger Spec

Slide 12

Slide 12 text

responses: $ref: '#/components/responses/PetsIndex' post: summary: Create new pet operationId: Pets/create tags: - pets requestBody: $ref: '#/components/requestBodies/PetsCreate' responses: $ref: '#/components/responses/PetsCreate' components: schemas: Pet: type: object required: - id - name properties: id: type: integer format: int32 name: type: string responses: PetsIndex: '200': content: application/json: schema: $ref: '#/components/schemas/PetsResponse' PetsCreate: Swagger Spec

Slide 13

Slide 13 text

- name properties: id: type: integer format: int32 name: type: string responses: PetsIndex: '200': content: application/json: schema: $ref: '#/components/schemas/PetsResponse' PetsCreate: '201': content: application/json: schema: $ref: '#/components/schemas/AnyContent' requestBodies: PetsCreate: required: true content: application/json: schema: $ref: '#/components/schemas/PetsCreate' Swagger Spec

Slide 14

Slide 14 text

$PEFHFO͸೉͘͠ͳ͍ w 4XBHHFS4QFDͷॻࣜ͸ͦ͜·ͰෳࡶͰ͸ͳ͍ w 0QFO"1*Yܥ͸ൺֱత෼͔Γ΍͍͢ߏ଄ͳͷ͕ಡΊ͹࣮ײͰ͖Δ ͸ͣʜ w :".-͸+40/ʹஔ׵ͯ͠͠·͑͹0, w ͜͜·Ͱ͘Ε͹୯ͳΔΦϒδΣΫτͳͷͰɺ+BWB4DSJQU /PEFKT Ͱࣗ༝ʹ ૢ࡞ग़དྷΔΑͶ

Slide 15

Slide 15 text

$PEFHFOX/PEFKTͷେ·͔ͳྲྀΕ Workflow of Codegen with Node.js

Slide 16

Slide 16 text

{ name: "Pet", properties: [ { name: "id", type: "number", description: "id of pet", optional: false } ], description: "Pet" } TS TS YAML JSON

Slide 17

Slide 17 text

{ name: "Pet", properties: [ { name: "id", type: "number", description: "id of pet", optional: false } ], description: "Pet" } TS TS YAML JSON 4XBHHFS6*͔Β4QFDϑΝΠϧΛμ΢ϯϩʔυ +40/ϑΝΠϧͳΒͦͷ·· :".-ͳΒ+40/΁ஔ׵͢Ε͹0,

Slide 18

Slide 18 text

{ name: "Pet", properties: [ { name: "id", type: "number", description: "id of pet", optional: false } ], description: "Pet" } TS TS YAML JSON 4QFD͔Βཉ͍͠஋Λநग़ͯ͠੔ܗ جຊతʹObject.keysؔ਺Λ࢖͍·͘Δ -PEBTIKT΍3BNEBKTͷΑ͏ͳίϨΫγϣϯૢ࡞ܥϥΠϒϥϦΛ࢖͏ͷ͕ ͓͢͢Ί

Slide 19

Slide 19 text

{ name: "Pet", properties: [ { name: "id", type: "number", description: "id of pet", optional: false } ], description: "Pet" } TS TS YAML JSON ੔ܗͨ͠஋͔Β※.js (※.ts) ϑΝΠϧΛੜ੒ ஋ΛNVTUBDIFςϯϓϨʔτʹྲྀ͠ࠐΉ͚ͩ /PEFKTͷ'JMF4USFBN"1*Λ࢖ͬͯϑΝΠϧੜ੒

Slide 20

Slide 20 text

#BTJD&YBNQMF ಈ͔ͯ͠ΈΑ͏

Slide 21

Slide 21 text

w ݸʑͷςΫχοΫ͸ۃΊͯݪ࢝తͳ΋ͷͰɺͦΕΒΛ૊Έ߹Θ͚ͤͨͩ w .BWFO(SPPWZͱ͍͏റΓ͕ແ͍ͷͰԣల։͕༰қ w J04ΞϓϦ։ൃͷݱ৔ͳΒ3VCZ౳Ͱಉ༷ͷ͜ͱ͕࣮ݱग़དྷΔ w ˞ଟ෼/PEFKTΑΓָͪΜ $PEFHFO͸೉͘͠ͳ͍

Slide 22

Slide 22 text

w ॴײͱͯ͠ɺ࣮ࡍʹ΍ͬͯΈΔͱ஍ຯͳ͚ͩͰܾͯ͠೉͘͠͸ͳ͔ͬͨ w Ή͠Ζ಄ͷମૢΛ͍ͯ͠Δؾ෼Ͱɺݸਓతʹ͸݁ߏָ͠Ίͨ w ؔ਺ܕϓϩάϥϛϯάΛֶश͢Δ͏͑Ͱͷ୊ࡐʹྑ͍͔΋ w ˞ߴ֊ؔ਺΍࠶ؼ͕ύʔεॲཧͱ૬ੑ͕ྑ͍ $PEFHFO͸೉͘͠ͳ͍

Slide 23

Slide 23 text

*OUSPEVDFNZTFMG Զͷ໊ΛݴͬͯΈΖ ࣗݾ঺հ

Slide 24

Slide 24 text

XFCϑϩϯτΤϯυΤϯδχΞ ॴଐגࣜձࣾϦΫϧʔτϚʔέςΟϯάύʔτφʔζ ෭ۀۀ຿ҕୗͱͯ͠๭ελʔτΞοϓاۀΛ͓ख఻͍த !XBLBNTIB *OUSPEVDFNZTFMG /BPLJ:"."%"ࢁా௚थ

Slide 25

Slide 25 text

PSYENCE:MEDIA PRODUCED BY

Slide 26

Slide 26 text

PSYENCE:MEDIA PRODUCED BY w ϦΫϧʔτϚʔέςΟϯάύʔτφʔζͷެࣜςοΫϒϩά w ٕज़ྗɾϊ΢ϋ΢ͷମܥԽ w 3.1ͷ಺੡։ൃ૊৫͓Αͼࣥචऀͷࣾ֎ϓϨθϯε޲্ w ࠾༻ϒϥϯσΟϯάڧԽ w ۀք׆ੑԽ΁ͷߩݙ 14:&/$&.&%*"

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

https://tech.recruit-mp.co.jp 3.1 ϒϩά

Slide 29

Slide 29 text

5IBOLZPV