Swagger on määräilevä ja kattava kehys RESTful-tyylisten verkkopalveluiden rakentamiseen, kuvaamiseen, kutsumiseen ja visualisointiin.
Yleinen tavoite on, että asiakas ja tiedostojärjestelmä päivittyvät samalla nopeudella kuin palvelin. Tiedoston menetelmät, parametrit ja mallit on tiiviisti integroitu palvelinpuolen koodiin, mikä mahdollistaa rajapintojen synkronoinnin koko ajan. Swagger ei ole koskaan tehnyt tehokkaiden API-rajapintojen käyttöönottoa ja käyttöä helpommaksi.
arvostelu
Luo ensin uusi projekti Core 3.1 ASP.NET ä ja käytä nugetia asentaaksesi Swashbuckle.AspNetCore-paketin seuraavalla komennolla:
Määritä Swagger-palvelu startup.cs-tiedostossa seuraavasti:
ConfigureServices-menetelmä
Määritä menetelmä
Luo uusi testiohjain seuraavalla koodilla:
Test Controller Create interface Product parameter model -objekti on seuraava:
Projektin aloittamisen jälkeen käytä:http://localhost:18979/swagger/index.html, kuten alla olevassa kuvassa näkyy:
swagger.json Sisältö on seuraava:
{ "openapi": "3.0.1", "info": { "title": "My API", "versio": "v1" }, "polut": { "/api/Testaa/Luo": { "post": { "tagit": [ "Testi" ], "requestBody": { "sisältö": { "application/json": { "skeema": { "$ref": "#/komponentit/skeemat/Tuote" } }, "text/json": { "skeema": { "$ref": "#/komponentit/skeemat/Tuote" } }, "application/*+json": { "skeema": { "$ref": "#/komponentit/skeemat/Tuote" } } } }, "Vastaukset": { "200": { "kuvaus": "Onnistuminen", "sisältö": { "teksti/selvä": { "skeema": { "type": "string" } }, "application/json": { "skeema": { "type": "string" } }, "text/json": { "skeema": { "type": "string" } } } } } } } }, "komponentit": { "skeemat": { "Tietoa": { "type": "objekti", "ominaisuudet": { "isDiscount": { "type": "boolean" }, "isVip": { "type": "boolean", "nullable": tosi } }, "additionalProperties": epätosi }, "Tuote": { "type": "objekti", "ominaisuudet": { "nimi": { "type": "string", "nullable": tosi }, "disabled": { "type": "boolean" }, "info": { "$ref": "#/components/skeemat/Information" } }, "additionalProperties": epätosi } } }
}
Huomasimme, että sekä Boolen tyypit että nollattavat Boolen tyypit oletuksena ovat: tosi,Päivittäisessä kehityksessä, jos boolia ei ole määritetty, oletusarvon tulisi olla väärä ja null-tyypin oletuksena null, yritämme käyttää swaggeria simuloidaksemme commitin, jos parametreja ei huomata,Onnettomuudet ovat alttiita。 (Viime viikolla käytin swaggeria simuloidakseni, että bool-parametri oli oletuksena tosi, jolloin WeChat-viestit siirtyivät kaikille.)
Miten voin asettaa Boolean-tyypin oletuksena väärin? Entä jos null-tyypit annettaisiin nulliksi?
Luo uusi luokka, joka perii ISchemaFilterin, ja koodi on seuraava:
Ja kun lisäät swagger-palvelun, lisää suodatin AddSwaggerGen seuraavasti:
Joillekin erityisille bool-kentille oletusarvo täytyy asettaa tosiksi ja se voidaan lisätä[DefaultValue(true)]Ominaisuudet ovat seuraavat:
{ "nimi": "naru", "disabled": totta, "info": { "isDiscount": väärin, "isVip": null }
} swagger.json Tiedosto on seuraava:
{ "openapi": "3.0.1", "info": { "title": "My API", "versio": "v1" }, "polut": { "/api/Testaa/Luo": { "post": { "tagit": [ "Testi" ], "requestBody": { "sisältö": { "application/json": { "skeema": { "$ref": "#/komponentit/skeemat/Tuote" } }, "text/json": { "skeema": { "$ref": "#/komponentit/skeemat/Tuote" } }, "application/*+json": { "skeema": { "$ref": "#/komponentit/skeemat/Tuote" } } } }, "Vastaukset": { "200": { "kuvaus": "Onnistuminen", "sisältö": { "teksti/selvä": { "skeema": { "type": "string" } }, "application/json": { "skeema": { "type": "string" } }, "text/json": { "skeema": { "type": "string" } } } } } } } }, "komponentit": { "skeemat": { "Tietoa": { "type": "objekti", "ominaisuudet": { "isDiscount": { "type": "boolean", "default": epätosi }, "isVip": { "type": "boolean", "default": null, "nullable": tosi } }, "additionalProperties": epätosi }, "Tuote": { "type": "objekti", "ominaisuudet": { "nimi": { "type": "string", "nullable": tosi }, "disabled": { "type": "boolean", "oletus": tosi }, "info": { "$ref": "#/components/skeemat/Information" } }, "additionalProperties": epätosi } } }
} (Loppu)
|