Hirdetés
- 3D nyomtatás
- HiFi műszaki szemmel - sztereó hangrendszerek
- Milyen billentyűzetet vegyek?
- Raspberry Pi
- Ilyen blokkot sem láttunk még készre szerelt vízhűtésnél
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- TCL LCD és LED TV-k
- Tervezzen neked chipet a Samsung!
- Milyen notebookot vegyek?
- Milyen RAM-ot vegyek?
Ú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!
- 3D nyomtatás
- OFF TOPIC 44 - Te mondd, hogy offtopic, a te hangod mélyebb!
- Mikrotik routerek
- Mobil flották
- Gran Turismo
- HiFi műszaki szemmel - sztereó hangrendszerek
- Programozás topic
- sziku69: Szólánc.
- PH!otósok beszélgetős, offolós topikja
- Becsszó, még mindig készül a Half-Life 3!
- További aktív témák...
- ÚJ Razer Kraken V4 Pro gamer fejhallgató
- T14s Gen2i 27% 14" FHD IPS i5-1135G7 16GB 512GB NVMe ujjlolv IR kam gar
- Thinkpad T14 Gen5 14" FHD+ IPS Ryzen 5 PRO 8540U 32GB DDR5 256GB NVMe gar
- ThinkPad T14 Gen2i 27% 14" FHD IPS i5-1135G7 16GB 256GB ujjlolv IR kam új akku gar
- Thinkpad T14s Gen3 14" FHD+ IPS i5-1240P 16GB 256GB NVMe ujjlolv IR kam gar
- GYÖNYÖRŰ iPhone 14 Pro 128GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen, 100% Akkumulátor, MS4022
- Garmin Vivomove 3S Hybrid okosóra Használt, karcmentes állapotban 3 hónap garanciával!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- Thinkpad P52s workstation: Core i7 8650U, 32GB RAM, P500 2 GB VGA, új kijelző és akkumulátorok
- HP ZBook Firefly 14 i7-1165G7 16GB 1000GB Nvidia Quadro T500 4GB 14" FHD 1 év garancia
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


