Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Negli elenchi ed esempi seguenti vengono descritti i protocolli per l'utilizzo del metodo POST di ADO.NET Data Services. Altri comportamenti richiesti da Hypertext Transfer Protocol, RFC 2616 sono descritti in Requisiti HTTP comuni (framework di ADO.NET Data Services) e PUT, POST e DELETE (framework di ADO.NET Data Services).
I protocolli seguenti si applicano alle richieste HTTP che utilizzano il metodo POST.
Un metodo POST eseguito sulle risorse ADO.NET Data Services deve contenere una serializzazione, inclusa nel corpo della richiesta, del set o tipo di entità identificato dal nodo foglia dell'URI di richiesta. La semantica della richiesta indica che i dati devono essere trasformati in una nuova risorsa ADO.NET Data Services.
Le richieste POST possono includere nel corpo della richiesta i valori per le proprietà della chiave dell'entità da creare. Tale richiesta può non riuscire e restituire il codice di risposta 422 Entità non elaborabile se il provider di archiviazione associato al servizio dati assegna automaticamente i valori alla chiave.
Le richieste POST non devono specificare l'URI dell'entità da aggiungere. In caso contrario, viene restituito il codice di risposta 400 Richiesta non valida e l'entità non viene aggiunta.
Tutte le richieste POST corrette inseriscono una nuova entità nel set di entità. Le richieste restituiscono il codice di risposta 201 Creato e includono un'intestazione di posizione nella risposta contenente l'URI dell'entità appena creata.
Eventuali annotazioni di contenuto posticipate nel payload della richiesta vengono ignorate.
Se l'URI della richiesta nell'intestazione HTTP non corrisponde all'URI associato nel payload della richiesta, l'URI della richiesta ha la precedenza e il payload viene elaborato come se includesse il valore dell'URI della richiesta.
Le richieste POST alle operazioni del servizio possono restituire il codice di risposta 500 Errore interno del server se durante l'esecuzione dell'operazione si verifica un errore, ad esempio un'eccezione nella fase di esecuzione diversa da DataServiceException.
Tipi che supportano il metodo POST
Negli esempi seguenti vengono illustrati gli elementi finali di sintassi del percorso URI HTTP e le condizioni in cui gli elementi supportano il metodo POST. Ogni esempio contiene la descrizione di una richiesta POST e i risultati previsti.
/<EntitySet>
Nell'URI di esempio seguente viene illustrato un set di entità come elemento finale:
/Customers
Descrizione:
Supporta il metodo POST.
Inserisce nel set una sola istanza del tipo di entità specificato dal corpo della richiesta.
L'URI dell'entità inserita non deve essere visualizzato nel corpo della richiesta. In caso contrario, viene restituito il codice di risposta 400 Richiesta non valida.
Il payload della richiesta può contenere nuovo contenuto per i set di entità correlati da una proprietà di collegamento o navigazione. Non è definita alcuna profondità massima per tali aggiornamenti.
Consente di associare l'entità di livello superiore appena creata ad altre entità appena create o esistenti:
Se la risorsa 1 contiene solo l'URI di una risorsa 2 esistente come valore di una proprietà di navigazione o collegamento della risorsa, la risorsa 1 viene associata alla risorsa 2.
Se la risorsa 1 contiene l'URI e il corpo di una nuova risorsa correlata, viene restituito il codice di risposta 400 Bad Request perché la proprietà dell'URI non deve essere specificata durante l'inserimento.
Se la risorsa 1 contiene solo il corpo ma non l'URI di una nuova risorsa 2 correlata, le risorse 1 e 2 vengono inserite e associate.
Esempi:
Nell'esempio seguente viene inserito e associato agli ordini esistenti 1 e 3 un nuovo Customer.
L'URI di richiesta termina con/Customers.È in formato JSON.
{
Company Name:"Contoso"
City: "Seattle"
Orders : [
{ __metadata: {uri:"/Orders(1)" }},
{ __metadata: {uri:"/Orders(3)" }}
]
}
Nell'esempio seguente vengono inseriti un nuovo Customer e un nuovo ordine correlato.
L'URI di richiesta termina con/Customers.È in formato JSON.
{
Company Name:"Contoso Widgets"
City: "Seattle"
Orders : [
{
OrderName: "NewOrder",
// additional property values go here
}
]
}
Nota |
|---|
Il parametro del tipo negli oggetti __metadata descritto in Regole di serializzazione JSON (framework di ADO.NET Data Services) è facoltativo se il tipo di entità non fa parte di una gerarchia di ereditarietà. Se non è specificato un tipo, si presuppone il tipo di base per il set di entità. Se il tipo fa parte di una gerarchia di ereditarietà, il parametro del tipo deve essere specificato. |
/EntitySet(keyPredicate)
Nell'URI di esempio seguente viene illustrato un predicato chiave come elemento finale:
/Customers('ALFKI')
Descrizione:
Il metodo POST non è supportato.
/<NavigationProperty> OPPURE /<LinkProperty>
Nell'URI di esempio seguente viene illustrata una proprietà di navigazione come elemento finale:
/Customers('ALFKI')/Orders
/Products(1)/Category
Descrizione:
La proprietà di navigazione o di collegamento supporta il metodo POST se la fine della relazione dispone di cardinalità maggiore di uno.
Le proprietà di navigazione e collegamento devono puntare alla fine della relazione con cardinalità maggiore di uno; altrimenti, viene restituito il codice di risposta 405 Metodo non consentito.
Queste proprietà utilizzano la stessa semantica illustrata in precedenza per
/<EntitySet>, con l'eccezione che la risorsa appena inserita viene associata alla risorsa identificata dal penultimo segmento dell'URI.
/<ComplexType>
Nell'URI di esempio seguente viene illustrato un tipo complesso come elemento finale:
/Customers('ALFKI’)/Address
Descrizione:
- Il metodo POST non è supportato.
/<Property>
Nell'URI di esempio seguente viene illustrata una proprietà come elemento finale:
/Customers('ALFKI’)/FirstName
Descrizione:
- Il metodo POST non è supportato.
<Property>/$value
Nell'URI di esempio seguente viene illustrato un valore di proprietà come elemento finale:
/Customers('ALFKI’)/FirstName/$value
Descrizione:
- Il metodo POST non è supportato.
/<ServiceOperationName>
Nell'URI di esempio seguente viene illustrato il nome di un'operazione di servizio come elemento finale:
/CustomersByCity?city=London
Descrizione:
Supporta il metodo POST.
Richiama l'operazione del servizio nel server.
I parametri sono passati all'operazione del servizio mediante il corpo della richiesta.
I parametri sono codificati utilizzando
application/x-www-form-urlencoding.Le operazioni del servizio possono essere richiamate utilizzando i verbi GET o POST e il documento di metadati relativo al servizio specifica quale verbo viene supportato per ogni operazione del servizio. Il verbo POST viene attivato per ogni singola operazione del servizio.
Vedere anche
Concetti
Metodo PUT (framework di ADO.NET Data Services)
Metodo DELETE (framework di ADO.NET Data Services)
Nota