Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 47519|Risposta: 4

[ASP.NET] ASP.NET fosso dei parametri predefiniti dell'interfaccia di Swagger in Core(8).

[Copiato link]
Pubblicato su 08/05/2021 13:27:02 | | | |
Swagger è un framework prescrittivo e completo per costruire, descrivere, chiamare e visualizzare servizi web in stile RESTful.

L'obiettivo generale è che il client e il file system si aggiornino alla stessa velocità del server. I metodi, i parametri e i modelli del file sono strettamente integrati nel codice lato server, permettendo alle API di rimanere sincronizzate in ogni momento. Swagger non ha mai reso più facile implementare e utilizzare API potenti.

recensione

ASP.NET Core (7) Analisi approfondita del codice sorgente del framework
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI ottiene manualmente il metodo di iniezione degli oggetti
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (cinque) si basa sulle transazioni distribuite CAP
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Filtro Core(4) validazione unificata del modello ModelState
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Creare dinamicamente istanze usando ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Riavvia l'applicazione tramite codice
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) utilizza la cache Redis
https://www.itsvse.com/thread-9393-1-1.html

Per prima cosa, crea un nuovo progetto ASP.NET Core 3.1 e usa nuget per installare il pacchetto Swashbuckle.AspNetCore con il seguente comando:

Configura il servizio Swagger nel file startup.cs come segue:

Metodo ConfigureServices

Metodo Configure

Crea un nuovo controller di Test con il seguente codice:

L'oggetto modello di parametro prodotto per creare interfaccia di Test Controller è il seguente:

Dopo aver avviato il progetto, accedi a:http://localhost:18979/swagger/index.html, come mostrato nella figura sottostante:



swagger.json Il contenuto è il seguente:

{
  "openapi": "3.0.1",
  "info": {
    "titolo": "La mia API",
    "versione": "v1"
  },
  "sentieri": {
    "/api/Test/Create": {
      "post": {
        "tag": [
          "Test"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/componenti/schemi/Prodotto"
              }
            },
            "testo/json": {
              "schema": {
                "$ref": "#/componenti/schemi/Prodotto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/componenti/schemi/Prodotto"
              }
            }
          }
        },
        "risposte": {
          "200": {
            "descrizione": "Successo",
            "content": {
              "testo/semplice": {
                "schema": {
                  "tipo": "string"
                }
              },
              "application/json": {
                "schema": {
                  "tipo": "string"
                }
              },
              "testo/json": {
                "schema": {
                  "tipo": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "componenti": {
    "schema": {
      "Informazioni": {
        "tipo": "oggetto",
        "proprietà": {
          "isDiscount": {
            "tipo": "booleano"
          },
          "isVip": {
            "tipo": "booleano",
            "nullabile": vero
          }
        },
        "Proprietà aggiuntive": false
      },
      "Prodotto": {
        "tipo": "oggetto",
        "proprietà": {
          "name": {
            "tipo": "string",
            "nullabile": vero
          },
          "disabilitato": {
            "tipo": "booleano"
          },
          "info": {
            "$ref": "#/componenti/schemi/Informazioni"
          }
        },
        "Proprietà aggiuntive": false
      }
    }
  }
}



Abbiamo scoperto che sia i tipi booleani che i tipi booleani nullabili di default sono: true,Nello sviluppo quotidiano, se il bool non viene assegnato, il default dovrebbe essere falso e il tipo null dovrebbe essere predefinito null, cerchiamo di usare lo swagger per simulare il commit, se i parametri non vengono notati,Gli incidenti sono soggetti。 (La settimana scorsa ho usato swagger per simulare che un parametro bool era vero di default, causando che i messaggi di WeChat venissero inviati a tutti.)

Come posso assegnare di default un tipo booleano a falso? Che ne dici di essere assegnati ai tipi nulli?

Crea una nuova classe che eredita da ISchemaFilter, e il codice è il seguente:

E quando aggiungi il servizio swagger, aggiungi il filtro AddSwaggerGen come segue:

Per alcuni campi bool speciali, il valore predefinito deve essere impostato su true e può essere aggiunto[DefaultValue(vero)]Le caratteristiche sono le seguenti:



{
  "nome": "corda",
  "Disabile": vero,
  "info": {
    "isDiscount": falso,
    "isVip": null
  }
}
swagger.json Il file è il seguente:
{
  "openapi": "3.0.1",
  "info": {
    "titolo": "La mia API",
    "versione": "v1"
  },
  "sentieri": {
    "/api/Test/Create": {
      "post": {
        "tag": [
          "Test"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/componenti/schemi/Prodotto"
              }
            },
            "testo/json": {
              "schema": {
                "$ref": "#/componenti/schemi/Prodotto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/componenti/schemi/Prodotto"
              }
            }
          }
        },
        "risposte": {
          "200": {
            "descrizione": "Successo",
            "content": {
              "testo/semplice": {
                "schema": {
                  "tipo": "string"
                }
              },
              "application/json": {
                "schema": {
                  "tipo": "string"
                }
              },
              "testo/json": {
                "schema": {
                  "tipo": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "componenti": {
    "schema": {
      "Informazioni": {
        "tipo": "oggetto",
        "proprietà": {
          "isDiscount": {
            "tipo": "booleano",
            "default": falso
          },
          "isVip": {
            "tipo": "booleano",
            "default": nullo,
            "nullabile": vero
          }
        },
        "Proprietà aggiuntive": false
      },
      "Prodotto": {
        "tipo": "oggetto",
        "proprietà": {
          "name": {
            "tipo": "string",
            "nullabile": vero
          },
          "disabilitato": {
            "tipo": "booleano",
            "default": vero
          },
          "info": {
            "$ref": "#/componenti/schemi/Informazioni"
          }
        },
        "Proprietà aggiuntive": false
      }
    }
  }
}

(Fine)






Precedente:Java utilizza JDBC per collegare un problema con URL sqlite
Prossimo:Kafka imposta manualmente l'offset
Pubblicato su 22/09/2021 20:45:47 |
Impara a imparare...
Pubblicato su 22/09/2021 20:59:49 |
Imparare a imparare, vecchio ferro, ci sono così tanti aggiornamenti che non riesco a stare al passo
Pubblicato su 16/05/2023 11:22:31 |
RE: ASP.NET Core(八) 之 Swagger UI 默认参数的坑 [修改]
Modalità avanzata
Pubblicato su 16/05/2023 17:20:36 |
Impara a imparare
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com