Dettagli di implementazione del protocollo WCF Data Services
Dettagli di implementazione del protocollo OData
OData (Open Data Protocol) richiede che un servizio dati che implementa il protocollo fornisca un determinato set di funzionalità minimo. Queste funzionalità sono descritte nei documenti del protocollo in termini che fanno riferimento ad azioni consigliate e necessarie. Le altre funzionalità facoltative vengono descritte in termini che fanno riferimento ad azioni ipotetiche. In questo argomento vengono descritte tali funzionalità facoltative che non sono attualmente implementate da WCF Data Services. Per ulteriori informazioni, vedere Documentazione del protocollo OData.
Supporto dell'opzione query $format
Il protocollo OData supporta i feed JSON (JavaScript Notation) e Atom e OData fornisce l'opzione query di sistema $format per consentire a un client di richiedere il formato del feed di risposta. Questa opzione query di sistema, se supportata dal servizio dati, deve eseguire l'override del valore dell'intestazione Accept della richiesta. WCF Data Services supporta la restituzione dei feed JSON e Atom. Tuttavia, l'implementazione predefinita non supporta l'opzione query $format e utilizza solo il valore dell'intestazione Accept per determinare il formato della risposta. In alcuni casi è necessario che il servizio dati supporti l'opzione query $format, ad esempio quando i client non possono impostare l'intestazione Accept. Per supportare questi scenari, è necessario estendere il servizio dati per gestire questa opzione nell'URI. È possibile aggiungere questa funzionalità al servizio dati scaricando il progetto di esempio Supporto del formato controllato da JSONP e URL per ADO.NET Data Services dal sito Web della raccolta di codice MSDN e aggiungendolo al progetto del servizio dati. Questo esempio rimuove l'opzione query $format e imposta l'intestazione Accept su application/json. Quando si include il progetto di esempio aggiungendo JSONPSupportBehaviorAttribute alla classe del servizio dati, si consente al servizio di gestire l'opzione query $format$format=json. È necessario personalizzare ulteriormente questo progetto di esempio per gestire anche $format=atom o gli altri formati personalizzati.
Comportamenti di WCF Data Services
I comportamenti di WCF Data Services seguenti non sono definiti in modo esplicito dal protocollo OData:
Comportamento di ordinamento predefinito
Quando una richiesta di query inviata al servizio dati include un'opzione query di sistema $top o $skip e non include l'opzione query di sistema $orderby, il feed restituito viene ordinato in base alle proprietà chiave in ordine crescente, poiché l'ordinamento è necessario per garantire il paging corretto dei risultati. A tale scopo, il servizio dati aggiunge un'espressione di ordinamento alla query. Questo comportamento si verifica anche quando viene abilitato il paging basato su server nel servizio dati. Per ulteriori informazioni, vedere Configurazione del servizio dati (WCF Data Services). Per controllare l'ordinamento del feed restituito, è necessario includere $orderby nell'URI di query.