μλ νμΈμ,
μ΄κ²μ΄ λ²κ·ΈμΈμ§ κ°μ μ¬νμΈμ§λ λͺ¨λ₯΄κ² μ§λ§ μ¬κΈ°μ μμ΅λλ€.
4κ°μ κ²½λ‘κ° μλ APIλ₯Ό μμ±νλ€κ³ κ°μ ν΄ λ³΄κ² μ΅λλ€.
POST /bar
GET /bar/{id_bar}
POST /foo
GET /foo/{id_foo}
κ·Έλ¬λ λ€μκ³Ό κ°μ νΉμ μμλ‘ UIλ₯Ό μ¬μ©νμ¬ μ½μ νλ€κ³ κ°μ ν΄ λ³΄κ² μ΅λλ€.
GET /foo/{id_foo}
POST /bar
GET /bar/{id_bar}
POST /foo
UIκ° νλ₯νκ³ κ²½λ‘κ° λ΄κ° μνλ κ²κ³Ό μΌμΉνμ¬ μ λ ¬λμ΄ λνλ©λλ€.
κ·Έλ¬λ κ²°κ³Ό ymlμ μμκ° μ§μ λμ§ μκ³ UIμ λνλλ κ²κ³Ό μΌμΉνμ§ μμ΅λλ€.
openapi: 3.0.2
info:
title: 'Test API'
version: 1.0.0
paths:
'/foo/{id_foo}': {}
/bar: {}
'/bar/{id_bar}': {}
/foo: {}
μΌλ°μ μΌλ‘ μμ yml νμΌμ κ²½λ‘ μμλ μ κ²½ μ°μ§ μμ΅λλ€.
κ·Έλ¬λ λ¬Έμ λ ReDocμ΄ ymlμ κ²½λ‘ μμλ₯Ό λ°λ₯Έλ€λ κ²μ
λλ€.
λ°λΌμ κ²°κ³Ό λ¬Έμλ μμκ° μ§μ λμ§ μμ΅λλ€.
APIκ° μλνκΈ° μμνλ©΄ μΌλΆ κ²½λ‘κ° μ
λ°μ΄νΈλκ³ μΌλΆκ° μμ λκ³ μΌλΆκ° μμ±λκΈ° λλ¬Έμ λ¬Έμ μ
λλ€.
μ΄λ κ²°κ³Ό λ¬Έμκ° λΉ λ₯΄κ² μλ§μ΄ λκ³ μμμ μλ―Έν©λλ€.
λͺ κ°μ§ μμ΄λμ΄κ° μμ΅λλ€. μλ²½νμ§λ μμ§λ§ μμμ
λλ€.
μ΄μ©λ©΄ μ°λ¦¬λ κ·Έκ²λ€μ λ°νμΌλ‘ μ κ΅νκ² λ§λ€ μ μμ΅λλ€.
μ£μ‘ν©λλ€. ReDoc μ€ν¬λ¦°μ·μ μ¬μ©ν YMLμ 첨λΆνλ κ²μ μμμ΅λλ€.
(λ΄κ° λΆμ¬ λ£μ κ²μ μμ
μ΄ μμΌλ―λ‘ ReDocμ λΉ λ¬Έμλ₯Ό μμ±ν©λλ€)
openapi: 3.0.2
info:
title: 'Test API'
version: 1.0.0
paths:
'/foo/{id_foo}':
get:
summary: 'Obtain a foo'
parameters:
-
name: id_foo
in: path
required: true
schema:
type: number
responses:
'201':
description: 'A foo'
/bar:
post:
summary: 'Create a bar'
responses:
'200':
description: 'A bar'
'/bar/{id_bar}':
get:
summary: 'Obtain a bar'
parameters:
-
name: id_bar
in: path
required: true
schema:
type: number
responses:
'201':
description: 'Bar created'
/foo:
post:
summary: 'Create a foo'
responses:
'200':
description: 'Foo created'
μ΄κ²μ λλκ²λ μ΄μ μ λνλμ§ μμ ν₯λ―Έλ‘μ΄ λ¬Έμ μ λλ€! μ€μ λ‘ UIμλ μ΅μ Cλ₯Ό μ 곡ν΄μΌ νλ€κ³ μκ°νλ λͺ κ΅°λ°κ° μμ΅λλ€. λ¬Έμμ λνλλ μμλλ‘ νλͺ©μ νμνμ§λ§ μ λ ¬ λ° μ¬μ λ ¬(μλ§λ λμ΄μ λκΈ°) μ΅μ μ μ 곡ν©λλ€.
μ¦, μμ μ루μ μ μ½ν μΈ λ₯Ό ReDocμ μ λ¬ νκΈ° μ μ κ²½λ‘μ κΈ°ν λͺ©λ‘μ μ λ ¬νλ κ²μ λλ€. κ·Έκ²μ λΉ λ₯΄κ³ μ½κ² ν μ μμΌλ©° Apicurio "미리보기" κΈ°λ₯μ νΉμ λ¬Έμ λ₯Ό ν΄κ²°ν κ²μ λλ€.
μ΄μ λν μκ°/μμ΄λμ΄κ° μμ΅λκΉ? @jsenko ?
λλ μ΄ λ¬Έμ μ λΆλͺμ³€λ€. μ΄μ λν λ΄ κ΄μ°°μ APICURIOκ° ββμ κ²½λ‘λ₯Ό λ§λ€ λ νμ¬ YAMLμ μ μ μλ₯Ό μΆκ°νλ€λ κ²μ λλ€. λλ yamlμ μμ ν λ체ν λ(μ: 'μμ€' νμμ μμ νλ κ²½μ° κ°λ³ κ²½λ‘).
λλ YAMLμ μ§μ μμ ν ν(κ·Έλ° λ€μ μ΄ μ λ°μ΄νΈ) μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λ°μ΄ν°λ² μ΄μ€λ₯Ό μλμΌλ‘ μ‘°μνκ³ μ΄λ»κ²λ νλ‘μ νΈλ₯Ό μ κ±°νκ³ λ€μ μμν΄μΌ νλ λͺ¨λ κ²μ΄ κΉ¨μ‘μ΅λλ€.
@EricWittmann μ΄ λ§νλ―μ΄ μ½ν μΈ λ₯Ό ReDocμ λκΈ°κΈ° μ μ κ²½λ‘μ κΈ°ν λͺ©λ‘μ μ λ ¬νλ κ²μ΄ κ°μ₯ μ’λ€κ³ μκ°ν©λλ€. μ°λ¦¬ μ€μ€λ‘ μ²λ¦¬ν μ μμ΅λλ€.
#394μ λ§μ°¬κ°μ§λ‘ μ¬κΈ°μ μΌλ°μ μΈ μμ΄λμ΄λ Apicurio UIκ° λͺ¨λ μ νμ μμ(κ²½λ‘, νλ, μλ§λ λ°μ΄ν° μ ν)μ λν YAML μμμ μΌμΉν΄μΌ νλ€λ κ²μ λλ€. κ·Έ μμλ λλλ‘ μ€μνκΈ° λλ¬Έμ λλ€(μ: λ¬Έμ μμ±).
μ¬κΈ°μμ λμμ΄ λ κ°λ¨ν ν κ°μ§λ μμ YAMLμ νΈμ§νκ³ μμμ μμλ§ λ³κ²½ν λ μ μ₯ λ²νΌμ νμ±ννλ κ²μ λλ€. νμ¬ Apicurioλ λ무 λλνκ³ λ³κ²½λ μ μΌν μμκ° μμμ μμμΌ λ μ μ₯ λ²νΌμ νμμΌλ‘ νμν©λλ€.
λλ κ°μ₯ μ’μ κ²μ (μΈκΈλ λ°μ κ°μ΄) μμ€μ μΌμΉνλλ‘ UIμμ μμλ₯Ό μ§μ νκ³ μ¬μ©μκ° λμ΄μ λκΈ°λ₯Ό ν΅ν΄ 물건μ μ΄λν μ μλλ‘ νλ κ²μ΄λΌκ³ μκ°ν©λλ€. κ·Έκ²μ μ¬μν λ³νκ° μλμ§λ§ IMOλ₯Ό νλ κ²μ΄ μ³μ μΌμ λλ€. μκ° @jsenko ?
κ°μ₯ μ μ©ν λκΈ
λλ μ΄ λ¬Έμ μ λΆλͺμ³€λ€. μ΄μ λν λ΄ κ΄μ°°μ APICURIOκ° ββμ κ²½λ‘λ₯Ό λ§λ€ λ νμ¬ YAMLμ μ μ μλ₯Ό μΆκ°νλ€λ κ²μ λλ€. λλ yamlμ μμ ν λ체ν λ(μ: 'μμ€' νμμ μμ νλ κ²½μ° κ°λ³ κ²½λ‘).
λλ YAMLμ μ§μ μμ ν ν(κ·Έλ° λ€μ μ΄ μ λ°μ΄νΈ) μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λ°μ΄ν°λ² μ΄μ€λ₯Ό μλμΌλ‘ μ‘°μνκ³ μ΄λ»κ²λ νλ‘μ νΈλ₯Ό μ κ±°νκ³ λ€μ μμν΄μΌ νλ λͺ¨λ κ²μ΄ κΉ¨μ‘μ΅λλ€.
@EricWittmann μ΄ λ§νλ―μ΄ μ½ν μΈ λ₯Ό ReDocμ λκΈ°κΈ° μ μ κ²½λ‘μ κΈ°ν λͺ©λ‘μ μ λ ¬νλ κ²μ΄ κ°μ₯ μ’λ€κ³ μκ°ν©λλ€. μ°λ¦¬ μ€μ€λ‘ μ²λ¦¬ν μ μμ΅λλ€.