Megosztás a következőn keresztül:


Webes API-elemzők használata

ASP.NET Core egy MVC-elemzőcsomagot biztosít, amely webes API-projektekhez használható. Az elemzők olyan vezérlőkkel dolgoznak, amelyek címkézve vannak, és web API konvenciókra építenek .

Az elemzőcsomag értesíti Önt minden olyan vezérlőműveletről, amely:

  • Be nem jelentett állapotkódot ad vissza.
  • Be nem jelentett sikeres eredményt ad vissza.
  • Nem visszaadott állapotkódot dokumentál.
  • Explicit modellérvényesítési ellenőrzést tartalmaz.

Referencia az elemzőcsomagra

Az elemzők a .NET SDK részét képezik. Ha engedélyezni szeretné az elemzőt a projektben, vegye fel a tulajdonságot IncludeOpenAPIAnalyzers a projektfájlba:

<PropertyGroup>
 <IncludeOpenAPIAnalyzers>true</IncludeOpenAPIAnalyzers>
</PropertyGroup>

Webes API-konvenciók elemzői

Az OpenAPI-dokumentumok olyan állapotkódokat és választípusokat tartalmaznak, amelyeket egy művelet visszaadhat. ASP.NET Core MVC-ben az olyan attribútumokat, mint ProducesResponseTypeAttribute és ProducesAttribute, a műveletek dokumentálására használják. ASP.NET Core webes API dokumentációja a Swagger/OpenAPI használatával további részletekbe ás a webes API dokumentálásával kapcsolatban.

A csomag egyik elemzője olyan vezérlőket vizsgál, amelyek megjegyzésekkel ApiControllerAttribute ellátottak, és azonosítják azokat a műveleteket, amelyek nem dokumentálják teljesen a válaszaikat. Vegye figyelembe a következő példát:

// GET api/contacts/{guid}
[HttpGet("{id}", Name = "GetById")]
[ProducesResponseType(typeof(Contact), StatusCodes.Status200OK)]
public IActionResult Get(string id)
{
    var contact = _contacts.Get(id);

    if (contact == null)
    {
        return NotFound();
    }

    return Ok(contact);
}

Az előző művelet a HTTP 200 sikeres visszatérési típusát dokumentálja, de nem dokumentálja a HTTP 404 hibaállapot-kódját. Az elemző figyelmeztetésként jelenti a HTTP 404 állapotkód hiányzó dokumentációját. Lehetőség van a probléma megoldására.

az elemző figyelmeztetést küld

Az elemzőknek Microsoft.NET.Sdk.Webre van szükségük

Az elemzők nem működnek könyvtárprojektekkel vagy olyan projektekkel, amelyek hivatkoznak Sdk="Microsoft.NET.Sdk".

További erőforrások