Генерация Swagger YAML Open API Spec программно из WSDL / XML - PullRequest
0 голосов
/ 01 июня 2018

У меня есть SOAP API, уже определенный через WSDL.Можно ли использовать какой-либо инструмент для преобразования WSDL в документы Open API Swagger?

Я предполагаю, что мне нужно написать собственный код для создания спецификации YAML Swagger 3.0 Open API из XML.

XML:

<country>
 <name>ABC</name>
 <population>100</population>
 <political_system>
  <system_type>Democracy</system_type>
  <legislature>bicameral</legislature>
</country>

Определение открытого API:

openapi: "3.0.0"
info:
  version: 1.0.0
  title: SysCountry  
servers:
  - url: http://localhost:5595/api/
paths:
 /Country:
  get:
   tags:
    -countries
   responses:
    '200':
      description:List of countries
      content:
       application/json:
        schema:
         $ref:"#/components/schemas/Countries
  post:
   summary:Create a country
   tags:
    -Conuntries
   requestBody:
    required: true
    content:
          application/json:
           schema: 
            $ref: '#/components/schemas/Country'
    responses:
        '201':
          description: Null response
components:
  schemas:
    Country:
      type: object
      required:
        - name
      properties:
        name:
          type: string
        population:
          type: integer
        political_system:
          type: object
          properties:
            system_type:
              type: string
            legislature:
              type:string
    Countries:
      type: array
      items:
        $ref: "#/components/schemas/Country"

Существует ли какая-либо библиотека .NET C #, которую можно использовать для программного создания документов YAML (возможно, что-то похожее наXMLDocument)

1 Ответ

0 голосов
/ 01 июня 2018

Есть YamlDotNet - https://github.com/aaubry/YamlDotNet Вы можете создать YamlStream + YamlDocument и построить свой документ оттуда, аналогично использованию XmlDocument.Другой подход заключается в создании классов для представления документа swagger и использовании API сериализации для генерации документа, аналогично использованию XmlSerializer.

...