Как добавить примеры кода x для ReDoc с помощью Swashbuckle.AspNetCore?

Так я это делаю (есть много способов):

  1. Преобразовать данные в JSON
  2. Вызов AJAX , чтобы получить файл JSON
  3. Преобразовать JSON в объект Javascript

Пример:

ШАГ 1

<?php

   $servername = "localhost";
   $username = "";
   $password = "";
   $dbname="";
   $conn = new mysqli($servername, $username, $password,$dbname);

   if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
   } 

   $sql = "SELECT id, name ,image FROM phone";
   $result = $conn->query($sql);

   while($row =$result->fetch_assoc()){ 
      $v[]=$row;    
   }

  echo json_encode($v);

  $conn->close();
?>

ШАГ 2

function showUser(fnc) {
   var xhttp = new XMLHttpRequest();

   xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
         // STEP 3    
         var p=JSON.parse(this.responseText);}
       }
    }
-2
задан PizzaBoy 30 March 2019 в 13:05
поделиться

1 ответ

Вот IDocumentFilter, который вводит «x-code-samples» в параметр

public class InjectSamples : IDocumentFilter
{
    public void Apply(SwaggerDocument swaggerDoc, DocumentFilterContext context)
    {
        PathItem path = swaggerDoc.Paths.Where(x => x.Key.Contains("Values")).First().Value;
        path.Post.Parameters.FirstOrDefault().Extensions.Add("x-code-samples", "123456");
    }
}

Да, вы можете усложнить все это с помощью аннотаций, но «x-code-samples» не поддерживается из ящик Swashbuckle, так что вам придется создать свой собственный, и они используют его на iDocFilter.

В комментариях вы продолжали указывать, что IDocumentFilters добавляются после того, как был создан документ чванства, да, мы хотим этого!

И сгенерированный swagger.json с этим выглядит так: [115 ]

"post": {
    "tags": [ "Values" ],
    "operationId": "ApiValuesPost",
    "consumes": [ "application/json" ],
    "produces": [],
    "parameters": [
        {
            "name": "value",
            "in": "body",
            "required": false,
            "schema": { "type": "string" },
            "x-code-samples": "123456"
        }
    ],
    "responses": {
        "200": { "description": "Success" }
    }
}   
0
ответ дан Helder Sepulveda 30 March 2019 в 13:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: