Bagikan melalui


Menggunakan dokumen openAPI

Menggunakan UI Swagger untuk pengujian ad-hoc lokal

Secara default, Microsoft.AspNetCore.OpenApi paket tidak dikirim dengan dukungan bawaan untuk memvisualisasikan atau berinteraksi dengan dokumen OpenAPI. Alat populer untuk memvisualisasikan atau berinteraksi dengan dokumen OpenAPI termasuk UI Swagger dan ReDoc. UI Swagger dan ReDoc dapat diintegrasikan dalam aplikasi dalam beberapa cara. Editor seperti Visual Studio dan VS Code menawarkan ekstensi dan pengalaman bawaan untuk pengujian terhadap dokumen OpenAPI.

Paket ini Swashbuckle.AspNetCore.SwaggerUi menyediakan bundel aset web UI Swagger untuk digunakan dalam aplikasi. Paket ini dapat digunakan untuk merender UI untuk dokumen yang dihasilkan. Untuk mengonfigurasi ini:

  • Pasang paket Swashbuckle.AspNetCore.SwaggerUi.
  • Aktifkan middleware swagger-ui dengan referensi ke rute OpenAPI yang terdaftar sebelumnya.
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.OpenApi;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.OpenApi.Models;

var builder = WebApplication.CreateBuilder();

builder.Services.AddOpenApi();

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.MapOpenApi();

    app.UseSwaggerUI(options =>
    {
        options.SwaggerEndpoint("/openapi/v1.json", "v1");
    });

}

app.MapGet("/", () => "Hello world!");

app.Run();

Sebagai praktik terbaik keamanan tentang membatasi pengungkapan informasi, antarmuka pengguna OpenAPI (antarmuka pengguna Swagger, ReDoc, Skalar) hanya boleh diaktifkan di lingkungan pengembangan. Misalnya, lihat Konfigurasi Swagger OAuth 2.0.

Buka aplikasi dan navigasi ke https://localhost:<port>/swagger untuk melihat antarmuka pengguna Swagger.

Untuk meluncurkan aplikasi secara otomatis di URL UI Swagger dengan menggunakan profil httpsProperties/launchSettings.json:

  • Konfirmasikan bahwa launchBrowser diaktifkan (true).
  • Atur launchUrl ke swagger.
"launchBrowser": true,
"launchUrl": "swagger",

Menggunakan Skalar untuk dokumentasi API interaktif

Skalar adalah UI dokumen interaktif sumber terbuka untuk OpenAPI. Skalar dapat diintegrasikan dengan titik akhir OpenAPI yang disediakan oleh ASP.NET Core. Untuk mengonfigurasi Skalar, instal Scalar.AspNetCore paket.

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.OpenApi;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.OpenApi.Models;
using Scalar.AspNetCore;

var builder = WebApplication.CreateBuilder();

builder.Services.AddOpenApi();

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.MapOpenApi();
    app.MapScalarApiReference();
}

app.MapGet("/", () => "Hello world!");

app.Run();

Luncurkan aplikasi dan navigasi ke https://localhost:<port>/scalar/v1 untuk melihat antarmuka pengguna Skalar.

Untuk meluncurkan aplikasi secara otomatis di URL antarmuka pengguna Scalar menggunakan profil https dari Properties/launchSettings.json:

  • Konfirmasikan bahwa launchBrowser diaktifkan (true).
  • Atur launchUrl ke scalar/v1.
"launchBrowser": true,
"launchUrl": "scalar/v1",

Lint menghasilkan dokumen OpenAPI dengan Spectral

Spectral adalah linter dokumen OpenAPI sumber terbuka. Spectral dapat dimasukkan ke dalam build aplikasi untuk memverifikasi kualitas dokumen OpenAPI yang dihasilkan. Instal Spectral sesuai dengan petunjuk penginstalan paket.

Untuk memanfaatkan Spectral, instal paket Microsoft.Extensions.ApiDescription.Server untuk mengaktifkan pembuatan dokumen OpenAPI pada saat build.

Aktifkan pembuatan dokumen pada waktu build dengan mengatur properti berikut dalam file aplikasi .csproj ":

<PropertyGroup>
    <OpenApiDocumentsDirectory>$(MSBuildProjectDirectory)</OpenApiDocumentsDirectory>
    <OpenApiGenerateDocuments>true</OpenApiGenerateDocuments>
</PropertyGroup>

Jalankan dotnet build untuk menghasilkan dokumen.

dotnet build

Buat .spectral.yml file dengan konten berikut.

extends: ["spectral:oas"]

Jalankan spectral lint pada file yang dihasilkan.

spectral lint WebMinOpenApi.json
...

The output shows any issues with the OpenAPI document. For example:

```output
1:1  warning  oas3-api-servers       OpenAPI "servers" must be present and non-empty array.
3:10  warning  info-contact           Info object must have "contact" object.                        info
3:10  warning  info-description       Info "description" must be present and non-empty string.       info
9:13  warning  operation-description  Operation "description" must be present and non-empty string.  paths./.get
9:13  warning  operation-operationId  Operation must have "operationId".                             paths./.get

✖ 5 problems (0 errors, 5 warnings, 0 infos, 0 hints)

Untuk mempelajari cara menggunakan dokumen OpenAPI yang dihasilkan dalam API minimal di .NET 6, 7, atau 8, lihat gambaran umum Swagger dan NSwag.