Új hozzászólás Aktív témák
-
dqdb
nagyúr
válasz
bandi0000
#9130
üzenetére
De most ez a megoldás nem rosszabb, mintha csak csinálnék pl egy osztályt, amibe van egy error és esetleg egy status code tulajdonság amit mindig visszaadok?
Ha kizárólag webes felületet nyújtasz, akkor szerintem ez az exception + middleware páros a legjobb.Ha vegyes felvágott a helyzet, mint nálunk, ahol webes és MQ felület is előfordul, akkor más a helyzet. Ezeknél az adott API implementációból az általad kérdezetthez hasonló üzenet jön ki, az API által dobható exceptionök kezelése belül megtörténik:
public class SomeResponse : IResponse
{
public string RequestID { get; set; }
public class OK : SomeResponse
{
public string SomeData { get; set; }
}
public class FailedBecauseOfThis : SomeResponse, IFault
{
public int Code { get; set; }
public string Message { get; set; }
}
public class FailedBecauseOfThat : SomeResponse, IFault
{
public int Code { get; set; }
public string Message { get; set; }
}
}Proto:
message SomeResponse {
string RequestID = 127;
oneof subtype {
SomeResponseOK OK = 1;
SomeResponseFailedBecauseOfThis FailedBecauseOfThis = 2;
SomeResponseFailedBecauseOfThat FailedBecauseOfThat = 3;
}
}
message SomeResponseOK {
string SomeData = 1;
}
message SomeResponseFailedBecauseOfThis {
int Code = 1;
string Message = 2;
}
message SomeResponseFailedBecauseOfThat {
int Code = 1;
string Message = 2;
}Sikeres válasz:
{
"some_data" : "data"
}Hibás válasz:
{
"code": 123,
"message": "blabla"
}Aztán ha MQ-n keresztül érkező kérésről van szó, akkor a teljes
SomeResponseleszármazott megy vissza protobuf kódolással, ha webes kérésről van szó, akkor általában* egy réteg a hibákat a példány típusa és/vagy kód alapján megfelelő 4xx/5xx státuszkódokra mappeli és a hibaüzenetet tartalmazó JSON-t ad vissza, ha sikeres volt, akkor simán JSON megy vissza (webes kéréseknél aRequestIDsem kerül bele a válaszba, csak a konvertálást, szerializálást, naplózást befolyásoló attribútumokat az egyszerűség kedvéért lehagytam).* általában, mert volt, hogy a 200 azt jelentette csak, hogy a szerver válaszolt, és ugyanúgy protobuf ment vissza a kliens felé
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- MWC 2026: Meglepően jó áron jön a kicsi, de erős, illetve a nagy és fotós Xiaomi
- Házimozi belépő szinten
- Elemlámpa, zseblámpa
- EA Sports WRC '23
- Milyen billentyűzetet vegyek?
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Samsung Galaxy Felhasználók OFF topicja
- Projektor topic
- Amlogic S905, S912 processzoros készülékek
- Európába tart a Xiaomi Watch 5, eSIM-es verzió is jöhet
- További aktív témák...
- Apple iPhone 14 Plus 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Asus PRIME H510M i5 11400 16GB DDR4 512GB SSD RX 6600 8GB Rampage SHIVA Adata 600W
- BESZÁMÍTÁS! ASRock A520M R5 5500 8GB DDR4 250GB SSD GTX 1050 Ti 4GB Sharkoon RGB Slider 400W
- BESZÁMÍTÁS! MSI B760M i7 13700KF 32GB DDR5 1TB SSD RX 7800 XT 16GB Lian LI LANCOOL 207RX ADATA 750W
- BESZÁMÍTÁS! ASUS Z790 i9 14900KF 64GB DDR5 1TB SSD RTX 5080 16GB LIAN LI LANCOOL 216R ADATA 850W
- SanDisk Extreme Portable 8TB (SDSSDE61-8T00-G25) (utolsó darab)
- HIBÁTLAN iPhone 15 128GB Yellow-1 ÉV GARANCIA - Kártyafüggetlen, MS4489, 100% Akksi
- Tablet felvásárlás! Samsung Galaxy Tab S10+, Samsung Galaxy Tab S10 Ultra, Samsung Galaxy Tab S10 FE
- Lenovo ThinkPad T14 Gen1 Intel i5-10310U Refurbished - Garancia
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
