Hirdetés
- Több új játék támogatásával bővült az Intel APO
- Csendes, slim profilú és madzagmentes Logitech klaviatúra, amit nem kell tölteni
- A Cougar félkörpanorámás mikrotornya fogadja a csatlakozóikat rejtő deszkákat is
- Négyeszközös HDD-ház érkezett a SilverStone műhelyéből
- Szemez az Intel gyártósoraival a Qualcomm
- Házimozi belépő szinten
- Mégis mi értelme az Xbox PC-nek, ha limitálja a hardverválasztékot?
- SSD kibeszélő
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Milyen HASZNÁLT notebookot vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- ThinkPad (NEM IdeaPad)
- Adatmentés - HDD - SSD - Flash
- Milyen TV-t 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
SomeResponse
leszá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 aRequestID
sem 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!
- War Thunder - MMO Combat Game
- Netflix
- Házimozi belépő szinten
- Mégis mi értelme az Xbox PC-nek, ha limitálja a hardverválasztékot?
- SSD kibeszélő
- A fociról könnyedén, egy baráti társaságban
- GL.iNet Flint 2 (GL-MT6000) router
- BestBuy topik
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Elektromos autók - motorok
- További aktív témák...
- Lenovo X13 Yoga 2in1 Thinkpad WUXGA Touch i5-1145G7 vPro 16GB 256GB 4G LTE GPS Win11 Pro Garancia
- Samsung Galaxy S23 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Új Dell 5330 Latitude 13.3 FHD IPS i3-1215U 4.4Ghz 6mag 16GB 256GB Intel UHD Win11 Pro LTE Garancia
- Lenovo ThinkPad X13 Gen 1 i5-10310U 16GB 256GB 1 év garancia
- Azonnali készpénzes nVidia RTX 4000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest