Devo integrarmi con le API di un'altra azienda, che sfortunatamente hanno deciso di scrivere in JSON RPC 2.0.
Se non hai familiarità con JSON RPC, è un protocollo RPC leggero che definisce una richiesta che deve sempre avere la struttura: jsonrpc, method, params, id.
Ecco una richiesta di esempio che potrei fare:
{
"jsonrpc": "2.0",
"method": "100",
"params": ["en", 123455678, "5.00", [["3", "1.00", "1"], ["4", "4.00", "1"]]],
"id": 100
}
Ecco una risposta di esempio a cui potrei tornare:
{
"jsonrpc": "2.0",
"id": 100,
"result": [
"0",
"0",
"0",
"20180723-0",
[]
]
}
Ho già sviluppato le mie API dell'app in C # e li ho ospitati su Azure, quindi stavo pensando che fosse più facile creare una libreria di classi in C # e fare riferimento alla libreria nella mia API (dove avrei bisogno di usarla).
Ma quando ho iniziato a sviluppare l'API in C # ho iniziato a rendermi conto di quanto sarebbe stato difficile da quando C # è stato così strongmente digitato. Penso che sarebbe ancora possibile in C # grazie alla digitazione dinamica, ma sembra un po 'eccessivo usare C #.
L'altra opzione che stavo pensando sarebbe di usare NodeJS, o anche Python. Ho creato alcuni piccoli script NodeJS e li ho ospitati in AWS Lambda, ma non ero soddisfatto dei ritardi di avvio di AWS Lambda. Questa applicazione si occupa di carte regalo, quindi voglio che l'integrazione sia il più veloce possibile.
Almeno con NodeJS e Python non sono così strongmente tipizzati, e quindi l'accesso ai valori specifici delle richieste che ottengo sarebbe abbastanza facile rispetto a quello che penso avrei dovuto fare con C #. Inoltre, sono l'unico sviluppatore della mia azienda, quindi sono disposto a sacrificare un po 'di manutenzione per un po' di tempo.