Uso il gestore API wso2 per pubblicare alcuni dei mieiAPI. Ma il mio problema è che se qualcuno invia una richiesta API con un corpo json non valido, è in grado di ignorare quella chiamata API e dare un messaggio di errore alla persona richiesta senza inviare quel corpo json non valido al back-end. Versione del gestore API: 1.7
Questa è la richiesta json errata (prova a inviare senza valore per "moduleCode")
{ "event": { "portalType": "dfd", "moduleCode": , "role": "3", "roleCode": "dfdf", "languageID": "gd", "password": "dfdfgd", "phoneNumber": "2332323", "resourceCode": [ "8045005" ] }}
Potrebbe essere possibile limitare l'utente in base al valore del ruolo nel suddetto json? Come raggiungere questo obiettivo con API Manager 2.0?
risposte:
2 per risposta № 1Non ci sono modi predefiniti per raggiungere questo requisito, ma è possibile personalizzare l'API Manager di WSO2 per soddisfare questo requisito.
È possibile scrivere un gestore personalizzato che convaliderà il corpo della richiesta e restituirà la risposta se la richiesta ha qualche errore piuttosto che inviare al back-end. Puoi controllare Qui su come scrivere un gestore personalizzato per API Manager 2.0.
1 per risposta № 2
Puoi fare riferimento a questo articolo "Come convalidare il carico utile della richiesta JSON in API Manager". Questo è esattamente il tuo caso d'uso e solo l'indirizzocosa devi fare è aggiungere XSD per abbinare alla tua richiesta. In Gestione API se è necessario convalidare la richiesta o il messaggio di preelaborazione, si consiglia sempre di utilizzare le estensioni di mediazione disponibili con il prodotto.
0 per risposta № 3
In arrivo la richiesta sarà trasformata in SOAPformat by message builder [1]. Questo generatore di messaggi verrà scelto in base al tipo di contenuto del messaggio in arrivo. È possibile scrivere il proprio generatore di messaggi per l'applicazione / json e convalidare l'input. ad es. [2]
[1]https://docs.wso2.com/display/ESB481/Working+with+Message+Builders+and+Formatters [2]https://github.com/anuruddhal/WSO2-ESB-Custom-Message-Builder/tree/master/CustomBuilder