Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 47519|Yanıt: 4

[ASP.NET] ASP.NET Core(8)'deki Swagger arayüzünün varsayılan parametrelerinin bir yuvası.

[Bağlantıyı kopyala]
Yayınlandı 8.05.2021 13:27:02 | | | |
Swagger, RESTful tarzı web servislerini oluşturmak, tanımlamak, çağırmak ve görselleştirmek için belirleyici ve eksiksiz bir çerçevedir.

Genel hedef, istemci ve dosya sisteminin sunucu ile aynı hızda güncellenmesi. Dosyanın yöntemleri, parametreleri ve modelleri sunucu tarafı koduna sıkı bir şekilde entegre edilmiştir; böylece API'ler her zaman senkronize kalabilir. Swagger, güçlü API'leri dağıtmayı ve kullanmayı hiç kolaylaştırmadı.

eleştiri

ASP.NET Core (7) Framework kaynak kodunun derinlemesine analizi
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI, nesneleri enjekte etme yöntemini manuel olarak elde eder
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (beş) CAP dağıtık işlemlere dayanmaktadır
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) filtresi birleşik ModelState model validasyonu
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) ActivatorUtilities kullanarak dinamik örnekler oluşturun
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Çekirdek (2) Uygulamayı kodla yeniden başlat
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) Redis önbellekleme kullanır
https://www.itsvse.com/thread-9393-1-1.html

Öncelikle, Core 3.1 ASP.NET yeni bir proje oluşturun ve nuget kullanarak Swashbuckle.AspNetCore paketini aşağıdaki komutla yükleyin:

startup.cs dosyasında Swagger servisini şu şekilde yapılandırın:

ConfigureServices yöntemi

Yöntemi yapılandırma

Aşağıdaki kodla yeni bir Test kontrolcüsü oluşturun:

Test Denetleyicisi Arayüz Oluştur Ürün parametre model nesnesi aşağıdaki gibidir:

Projeye başladıktan sonra erişim:http://localhost:18979/swagger/index.html, aşağıdaki şekilde gösterildiği gibi:



swagger.json İçerik şöyledir:

{
  "openapi": "3.0.1",
  "bilgi": {
    "title": "Benim API'm",
    "Versiyon": "v1"
  },
  "Paths": {
    "/api/Test/Yarat": {
      "post": {
        "etiketler": [
          "Test"
        ],
        "requestBody": {
          "içerik": {
            "application/json": {
              "şema": {
                "$ref": "#/bileşenler/şemalar/Ürün"
              }
            },
            "text/json": {
              "şema": {
                "$ref": "#/bileşenler/şemalar/Ürün"
              }
            },
            "application/*+json": {
              "şema": {
                "$ref": "#/bileşenler/şemalar/Ürün"
              }
            }
          }
        },
        "yanıtlar": {
          "200": {
            "açıklama": "Başarı",
            "içerik": {
              "metin/sade": {
                "şema": {
                  "type": "string"
                }
              },
              "application/json": {
                "şema": {
                  "type": "string"
                }
              },
              "text/json": {
                "şema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "bileşenler": {
    "şemalar": {
      "Bilgi": {
        "type": "object",
        "özellikler": {
          "isDiscount": {
            "type": "boolean"
          },
          "isVip": {
            "type": "boolean",
            "nullable": doğru
          }
        },
        "additionalProperties": yanlış
      },
      "Ürün": {
        "type": "object",
        "özellikler": {
          "isim": {
            "type": "ip",
            "nullable": doğru
          },
          "engelli": {
            "type": "boolean"
          },
          "bilgi": {
            "$ref": "#/components/şemalar/Bilgi"
          }
        },
        "additionalProperties": yanlış
      }
    }
  }
}



Hem Boolean tiplerin hem de nullable Boolean tiplerin varsayılan olarak şu olduğunu bulduk: doğru,Günlük geliştirmede, bool atanmadıysa, varsayılan yanlış olmalı ve null tip varsayılan olarak null olmalıdır, parametreler fark edilmezse, commit simüle etmek için swagger kullanmaya çalışırız,Kazalar genellikle。 (Geçen hafta, bir bool parametresinin varsayılan olarak doğru olduğunu simüle etmek için swagger kullandım ve WeChat mesajları tüm kişilere gönderildi.)

Varsayılan olarak yanlış bir Boolean tipini nasıl atayabilirim? Ya null tiplere null atanıyor mı?

ISchemaFilter'den miras alan yeni bir sınıf oluşturun ve kod şu şekildedir:

Ve swagger servisini eklerken, AddSwaggerGen filtresini aşağıdaki gibi ekleyin:

Bazı özel bool alanları için varsayılan değerin doğru olarak ayarlanması gerekir ve eklenebilir[DefaultValue(doğru)]Özellikler şunlardır:



{
  "isim": "ip",
  "engelli": doğru,
  "bilgi": {
    "isDiscount": yanlış,
    "isVip": null
  }
}
swagger.json Dosya şöyledir:
{
  "openapi": "3.0.1",
  "bilgi": {
    "title": "Benim API'm",
    "Versiyon": "v1"
  },
  "Paths": {
    "/api/Test/Yarat": {
      "post": {
        "etiketler": [
          "Test"
        ],
        "requestBody": {
          "içerik": {
            "application/json": {
              "şema": {
                "$ref": "#/bileşenler/şemalar/Ürün"
              }
            },
            "text/json": {
              "şema": {
                "$ref": "#/bileşenler/şemalar/Ürün"
              }
            },
            "application/*+json": {
              "şema": {
                "$ref": "#/bileşenler/şemalar/Ürün"
              }
            }
          }
        },
        "yanıtlar": {
          "200": {
            "açıklama": "Başarı",
            "içerik": {
              "metin/sade": {
                "şema": {
                  "type": "string"
                }
              },
              "application/json": {
                "şema": {
                  "type": "string"
                }
              },
              "text/json": {
                "şema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "bileşenler": {
    "şemalar": {
      "Bilgi": {
        "type": "object",
        "özellikler": {
          "isDiscount": {
            "type": "boolean",
            "default": yanlış
          },
          "isVip": {
            "type": "boolean",
            "default": null,
            "nullable": doğru
          }
        },
        "additionalProperties": yanlış
      },
      "Ürün": {
        "type": "object",
        "özellikler": {
          "isim": {
            "type": "ip",
            "nullable": doğru
          },
          "engelli": {
            "type": "boolean",
            "default": doğru
          },
          "bilgi": {
            "$ref": "#/components/şemalar/Bilgi"
          }
        },
        "additionalProperties": yanlış
      }
    }
  }
}

(Son)






Önceki:Java, sqlite URL sorununu bağlamak için JDBC kullanır
Önümüzdeki:Kafka ofset ofsetini manuel olarak ayarlar
Yayınlandı 22.09.2021 20:45:47 |
Öğrenmeyi öğren...
Yayınlandı 22.09.2021 20:59:49 |
Öğrenmeyi öğreniyorum, eski demir, o kadar çok güncelleme var ki, yetişemiyorum
Yayınlandı 16.05.2023 11:22:31 |
RE: ASP.NET Core(八) 之 Swagger UI 默认参数的坑 [修改]
Gelişmiş mod
Yayınlandı 16.05.2023 17:20:36 |
Öğrenmeyi öğren
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com