Sono interessato alla creazione di un endpoint del servizio Web in C # /. NET completamente configurabile. Per semplificare l'ipotesi, non esiste alcun requisito GET / query / recupero. Ho solo bisogno di una guida su come iniziare qui.
L'obiettivo è di avere una soluzione di base costruita, testata e distribuita che possa essere configurata per nuovi oggetti, evitando così il requisito di modificare, costruire e distribuire l'intera soluzione ogni volta che un oggetto viene aggiunto / rimosso / modificato. Questa configurazione dovrebbe supportare il controllo delle versioni in base all'ambiente in cui opererà.
Supponiamo di avere un file di configurazione come il seguente:
{
"V1": {
"Person": [
{
"Name": "FirstName",
"Required": true,
"Type": "string",
"MaxLength": 25
},
{
"Name": "Lastname",
"Required": true,
"Type": "string",
"MaxLength": 25
},
{
"Name": "Title",
"Required": false,
"Type": "string",
"MaxLength": 50
}
]
},
"V2": {
"Person": [
{
"Name": "FirstName",
"Required": true,
"Type": "string",
"MaxLength": 25
},
{
"Name": "Lastname",
"Required": true,
"Type": "string",
"MaxLength": 25
},
{
"Name": "Title",
"Required": false,
"Type": "string",
"MaxLength": 50
},
{
"Name": "DateOfBirth",
"Required": false,
"Type": "DateTime"
}
]
}
}
Con questa configurazione voglio un'applicazione che esponga un endpoint per un chiamante per inviare un oggetto e convalidare l'oggetto rispetto alle regole di tipo. Dovrebbe anche esporre un WSDL.
Per essere chiari, non voglio scrivere un semplice singolo endpoint generico che possa prendere una serie di attributi chiave-valore e quindi convalidare - Voglio generare un contratto.
In sostanza, sto cercando di avere un servizio web a contratto senza dover creare POCO. Ciò consentirà ai mittenti di prendere in giro più facilmente l'endpoint per il loro lavoro di sviluppo.
Per i curiosi, i dati in arrivo verranno inviati a un bus di messaggistica per essere elaborati da altri servizi. Pertanto, l'endpoint deve eseguire la valutazione di tipo / lunghezza / ecc. Ma non voglio creare / aggiornare i POCO e i controller insieme a tutti i test e i mal di testa di un'implementazione aziendale semplicemente perché alcuni oggetti hanno un nuovo campo. / p>