Hirdetés
- Mobil flották
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Vivo X300 Ultra - tárcsázz, ha van rá keret!
- Xiaomi 15T Pro - a téma nincs lezárva
- Óra vagy karperec? Egészségügyi mindenes!
- 8000 nit, maradhat? A szaúdiaknál kezd a Honor 600 Pro
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Szívós, szép és kitartó az új OnePlus óra
- Limitálható, de nem kikapcsolható a YouTube Shorts mobilon
- iPhone topik
Ú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!
- Sapphi: StremHU | Source – Self-hostolható Stremio addon magyar trackerekhez
- Tőzsde és gazdaság
- Fejhallgatós találkozó
- Xbox tulajok OFF topicja
- Horgász topik
- Automata kávégépek
- Hosszú premier előzetest kapott az Arknights: Endfield
- HiFi műszaki szemmel - sztereó hangrendszerek
- Óriási ugrás: teszten az ASUS Zenbook A16 és a Snapdragon X2
- Milyen autót vegyek?
- További aktív témák...
- MSI MPG 271QRX QD-OLED 360Hz 1440p Gamer Monitor Garanciás 2027.12.03-ig
- Samsung Galaxy S23 Ultra 512GB,Újszerű,Dobozaval,12 hónap garanciával
- Apple iPhone 15 Plus 256GB,Újszerű,Dobozaval,12 hónap garanciával
- Apple iPhone 14 Pro 128GB,Újszerű,Adatkabel,12 hónap garanciával
- Apple iPhone 12 64GB,Használt,Adatkabel,12 hónap garanciával
- HIBÁTLAN iPhone 13 256GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3732
- Lenovo ThinkPad P1 Gen 4 i7 32GB RAM 1TB SSD NVIDIA RTX A2000 2560X1600 400nit Garancia 19 hónap
- Kezdő Gamer PC-Számítógép! Csere-Beszámítás! I5 7500 / GTX 1650 / 16GB DDR4 / 128SSD + 500HDD
- Belépő Gaming PC! i7-8700 / RTX 3060 Ti / 16GB DDR4 / 500GB SSD / Z390 / 500w!
- Lenovo ThinkPad L13 Gen 3 13,3" - i5 1235U, 16GB RAM, SSD, jó akku, magyar bill. - számla, 6 hó gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

