Bios.Web.Problems 0.2.0

Bios.Web.Problems

Hata cevapları için tek biçim: RFC 9457 problem+json. İstemci karar verirken makine koduna bakar, kullanıcıya gösterirken sunucunun gönderdiği başlığı kullanır. Metin sunucuda durduğu için ikinci bir dil eklemek istemciye dokunmaz.

Kod bir enum'dur ve ürüne aittir; bu paket yalnız mekanizmayı taşır. Enum adı snake_case'e çevrilir: NameRequired telde name_required olur. Başlık, ürünün resource dosyasından, isteğin Accept-Language değerine göre çözülür.

Bağlama

// acilista: hangi resource dosyasi basliklari verecek, ve hata URN'leri
// hangi isim alani altinda yayinlanacak
services.AddBiosProblems<ErrorResource>(urnNamespace: "acme");

// endpoint'te:
return http.Problem(ErrorCode.NameRequired, StatusCodes.Status400BadRequest);

Cevap şöyle çıkar:

{
  "type": "urn:acme:error:name_required",
  "code": "name_required",
  "status": 400,
  "title": "Unvan boş bırakılamaz."
}

Alan bazlı ayrıntı gerekiyorsa extensions sözlüğüyle ek üyeler eklenir; RFC buna izin verir.

İki nokta

urnNamespace zorunludur ve varsayılanı yoktur. type alanı ürünün dış sözleşmesidir — istemciler ona göre dallanır. Paketin buraya bir varsayılan koyması, bir ürünün hatalarını başka bir ürünün adıyla yayınlaması demek olurdu. Değer verilmezse ya da URN'de kullanılamayacak karakterler taşıyorsa uygulama açılışta durur.

AddLocalization çağırmanıza gerek yok, bu metot onu kendisi yapar. Yerelleştirme mekanizmanın ön koşuludur ve derleyicinin göremediği türden bir ön koşuldur: unutulduğunda kod sorunsuz derlenir, uygulama ilk isteğe kadar bile gelemez. O yüzden burada kurulur. Kendiniz de çağırdıysanız bir şey kaybetmezsiniz, çağrı zaten tekrara dayanıklıdır.

No packages depend on Bios.Web.Problems.

.NET 10.0

  • No dependencies.

Version Downloads Last updated
0.2.0 75 08/29/2026
0.1.0 2 08/29/2026