Apicurio-studio: рд╡рд╛рдИрдПрдордПрд▓ рдПрдкреАрдЖрдИ рдореЗрдВ рдкрде рдХреНрд░рдо рдХрд╛ рдЖрджреЗрд╢ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпреВрдЖрдИ рдореЗрдВ рдкрде рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 12 рдорд╛рд░реНрдЪ 2019  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Apicurio/apicurio-studio

рдирдорд╕реНрддреЗ,

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдмрдЧ рд╣реИ рдпрд╛ рдПрди рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ

рдореБрджреНрджреЗ рдХрд╛ рд╡рд┐рд╡рд░рдг

рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореИрдВ рдЪрд╛рд░ рдкрдереЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдкреАрдЖрдИ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

  • 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

рдпреВрдЖрдИ рдЕрдЪреНрдЫрд╛ рд╣реИ рдФрд░ рдкрде рдХреНрд░рдордмрджреНрдз рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЙрд╕рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реВрдВ:

image

рд▓реЗрдХрд┐рди, рдкрд░рд┐рдгрд╛рдореА 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 . рдореЗрдВ рдкрдереЛрдВ рдХреЗ рдХреНрд░рдо рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ

рддреЛ рдкрд░рд┐рдгрд╛рдореА рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд╛ рдЖрджреЗрд╢ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

image

image

рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдмрд╛рд░ рдЬрдм рдПрдХ рдПрдкреАрдЖрдИ рдЬреАрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ рдХреБрдЫ рдкрде рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдХреБрдЫ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдмрди рдЬрд╛рддреЗ рд╣реИрдВ
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдореА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЬрд▓реНрджреА рд╕реЗ рдПрдХ рдЧрдбрд╝рдмрдбрд╝ рдЧрдбрд╝рдмрдбрд╝ рдмрди рд░рд╣рд╛ рд╣реИ

рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рд╡реЗ рдкрд░рд┐рдкреВрд░реНрдг рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВ рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╢реБрд░реБрдЖрдд рд╣реИ
рд╢рд╛рдпрдж рд╣рдо рдЙрди рдкрд░ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╕реНрддреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

  • рд╣рдореЗрд╢рд╛ рдЖрдЙрдЯрдкреБрдЯ рдПрдкреАрдЖрдИ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░реЗрдВ
    рдкреЗрд╢реЗрд╡рд░реЛрдВ: рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ?)
    рд╡рд┐рдкрдХреНрд╖: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЖрджреЗрд╢ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИрдВ
  • рдЖрдЙрдЯрдкреБрдЯ рдПрдкреАрдЖрдИ рдореЗрдВ рдкрдереЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВ
    рдкреЗрд╢реЗрд╡рд░реЛрдВ: рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ?)
    рд╡рд┐рдкрдХреНрд╖: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрдереЛрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ
  • UI рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдкрдереЛрдВ рдХрд╛ рдЖрджреЗрд╢ рди рджрд┐рдпрд╛ рдЬрд╛рдП,
    рдФрд░ рд╕рдм рдХреБрдЫ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдЯрди рдЬреЛрдбрд╝реЗрдВ + рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд╛рд╕реНрддреЛрдВ рдХреЛ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЯрди
    рдкреЗрд╢реЗрд╡рд░реЛрдВ: рд╕рдм рдХреБрдЫ рд╣рд▓ рдХрд░ рджреЗрдВрдЧреЗ
    рд╡рд┐рдкрдХреНрд╖: рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдХрдард┐рди (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ?)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛; рдЗрд╕ рдкрд░ рдореЗрд░рд╛ рдЕрд╡рд▓реЛрдХрди рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдирдП рдкрде рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ APICURIO рд╡рд░реНрддрдорд╛рди YAML рдореЗрдВ рдирдИ рдкрд░рд┐рднрд╛рд╖рд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ; рдпрд╛ рдЬрдм рд╣рдо yaml рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрде рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдореИрдВ 'рд╕реНрд░реЛрдд' рдЯреИрдм рд╕реЗ рдХреБрдЫ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ)ред

рдореИрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ YAML рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рддрд╛ рд╣реВрдВ (рдлрд┐рд░ рдХреЙрд▓рдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ), рдФрд░ рдХрд┐рд╕реА рддрд░рд╣ рд╕рдм рдХреБрдЫ рдЯреВрдЯ рдЧрдпрд╛ рдХрд┐ рдореБрдЭреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЬреИрд╕рд╛ рдХрд┐ @EricWittmann рдиреЗ рдХрд╣рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдХреЛ ReDoc рдХреЛ рд╕реМрдВрдкрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрде рдФрд░ рдЕрдиреНрдп рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдпрд╛ рд╣рдо 'рдкреНрд░рд╛рд░реВрдк' рдмрдЯрди рдХреЗ рдмрдЧрд▓ рдореЗрдВ 'рд╕реНрд░реЛрдд' рдЯреИрдм рдореЗрдВ рдПрдХ рдФрд░ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╢рд╛рдпрдж 'рд╕реЙрд░реНрдЯ рдкрде' рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдордХрд░рдг), рдЬрд┐рд╕реЗ рд╣рдо рдЦреБрдж рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдУрд╣, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЙрд╕ YML рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВрдиреЗ ReDoc рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдерд╛
(рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЪрд┐рдкрдХрд╛рдпрд╛ рд╣реИ рдЙрд╕рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП 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'

рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдореБрджреНрджрд╛ рд╣реИ рдЬреЛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдЖрдпрд╛ рд╣реИ! рдпреВрдЖрдИ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рд╕реНрдерд╛рди рд╣реИрдВ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЖрдкрдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╕реА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЖрдЗрдЯрдо рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рд▓реЗрдХрд┐рди рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рд╕реЗ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░реЗрдВ (рд╕рдВрднрд╡рддрдГ рдЦреАрдВрдЪреЗрдВ рдФрд░ рдЫреЛрдбрд╝реЗрдВ)ред

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рд╕рд╛рдордЧреНрд░реА рдХреЛ ReDoc рдХреЛ рд╕реМрдВрдкрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрде рдФрд░ рдЕрдиреНрдп рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ред рдпрд╣ рддреЗрдЬрд╝ рдФрд░ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ рдФрд░ рдПрдкрд┐рдХреБрд░рд┐рдпреЛ "рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди" рд╕реБрд╡рд┐рдзрд╛ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛ред

рдЗрд╕ рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░/рд╡рд┐рдЪрд╛рд░, @jsenko ?

рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛; рдЗрд╕ рдкрд░ рдореЗрд░рд╛ рдЕрд╡рд▓реЛрдХрди рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдирдП рдкрде рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ APICURIO рд╡рд░реНрддрдорд╛рди YAML рдореЗрдВ рдирдИ рдкрд░рд┐рднрд╛рд╖рд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ; рдпрд╛ рдЬрдм рд╣рдо yaml рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрде рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдореИрдВ 'рд╕реНрд░реЛрдд' рдЯреИрдм рд╕реЗ рдХреБрдЫ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ)ред

рдореИрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ YAML рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рддрд╛ рд╣реВрдВ (рдлрд┐рд░ рдХреЙрд▓рдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ), рдФрд░ рдХрд┐рд╕реА рддрд░рд╣ рд╕рдм рдХреБрдЫ рдЯреВрдЯ рдЧрдпрд╛ рдХрд┐ рдореБрдЭреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЬреИрд╕рд╛ рдХрд┐ @EricWittmann рдиреЗ рдХрд╣рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдХреЛ ReDoc рдХреЛ рд╕реМрдВрдкрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрде рдФрд░ рдЕрдиреНрдп рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдпрд╛ рд╣рдо 'рдкреНрд░рд╛рд░реВрдк' рдмрдЯрди рдХреЗ рдмрдЧрд▓ рдореЗрдВ 'рд╕реНрд░реЛрдд' рдЯреИрдм рдореЗрдВ рдПрдХ рдФрд░ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╢рд╛рдпрдж 'рд╕реЙрд░реНрдЯ рдкрде' рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдордХрд░рдг), рдЬрд┐рд╕реЗ рд╣рдо рдЦреБрдж рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред

# 394 рдХреА рддрд░рд╣, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдПрдкрд┐рдХреБрд░рд┐рдпреЛ рдпреВрдЖрдИ рдХреЛ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рддрддреНрд╡реЛрдВ (рдкрде, рдлрд╝реАрд▓реНрдб, рд╢рд╛рдпрдж рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░) рдХреЗ рд▓рд┐рдП рд╡рд╛рдИрдПрдПрдордПрд▓ рдСрд░реНрдбрд░рд┐рдВрдЧ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдСрд░реНрдбрд░ рдХрднреА-рдХрднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред

рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЪреАрдЬ рдЬреЛ рдпрд╣рд╛рдВ рдорджрджрдЧрд╛рд░ рд╣реЛрдЧреА, рд╡рд╣ рд╣реИ рдХрдЪреНрдЪреЗ YAML рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕реЗрд╡ рдмрдЯрди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдФрд░ рдХреЗрд╡рд▓ рддрддреНрд╡реЛрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдмрджрд▓рдирд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдПрдкрд┐рдХреБрд░рд┐рдпреЛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕реНрдорд╛рд░реНрдЯ рд╣реИ рдФрд░ рд╕реЗрд╡ рдмрдЯрди рдХреЛ рдзреВрд╕рд░ рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬрдм рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдмрджрд▓ рдЧрдИ рд╣реИ рд╡рд╣ рд╣реИ рддрддреНрд╡реЛрдВ рдХрд╛ рдХреНрд░рдоред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреВрдЖрдИ рдореЗрдВ рд╕реНрд░реЛрдд рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╛рдорд╛рди рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ред рдпрд╣ рдХреЛрдИ рдорд╛рдореВрд▓реА рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдЖрдИрдПрдордУ рдХрд░рдирд╛ рд╕рд╣реА рдмрд╛рдд рд╣реИред рд╡рд┐рдЪрд╛рд░ @jsenko ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ablaas-ald picture ablaas-ald  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bpeterm picture bpeterm  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jsenko picture jsenko  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bodograumann picture bodograumann  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

askfor picture askfor  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ