Поддержка стандарта OData в ODataDB
ODataDB поддерживает большинство возможностей версии OData 4.01.
Для получения последних спецификаций стандарта OData, воспользуйтесь следующими ссылками:
Ниже приведен статус поддержки спецификации:
Уровень минимальной совместимости OData | |
---|---|
1. ДОЛЖЕН публиковать документ службы в корне службы (раздел 11.1.1) | ✓ |
2. ДОЛЖЕН возвращать данные в одном из определенных форматов OData (раздел 7) | ✓ |
3. ДОЛЖЕН поддерживать серверную пагинацию при возврате частичных результатов (раздел 11.2.5.7) | ✓ |
4. ДОЛЖЕН возвращать соответствующий заголовок OData-Version (раздел 8.1.5) | ✓ |
5. ДОЛЖЕН соответствовать семантике следующих заголовков или завершать запрос с ошибкой | ✓ |
5.1. Accept (раздел 8.2.1) | ✓ |
5.2. OData-MaxVersion (раздел 8.2.7) | ✓ |
6. ДОЛЖЕН следовать рекомендациям OData по расширяемости (раздел 6 и все подразделы) | ✓ |
7. ДОЛЖЕН успешно анализировать запрос в соответствии с [OData-ABNF] для любых поддерживаемых параметров системного запроса и либо следовать спецификации, либо возвращать 501 Not Implemented для неподдерживаемой функциональности (раздел 9.3.1) | ✓ |
8. ДОЛЖЕН предоставлять только типы данных, определенные в [OData-CSDL] | ✓ |
9. ДОЛЖЕН НЕ требовать от клиентов понимания каких-либо метаданных или аннотаций экземпляров (раздел 6.4), пользовательских заголовков (раздел 6.5) или пользовательского контента (раздел 6.2) в полезной нагрузке для корректного использования сервиса | ✓ |
10. ДОЛЖЕН НЕ нарушать семантику обновления OData (раздел 11.4 и все подразделы) | ✓ |
11. ДОЛЖЕН НЕ нарушать другие семантики, определенные OData | ✓ |
12. СЛЕДУЕТ поддерживать $expand (раздел 11.2.4.2) | ✓ |
13. МОЖЕТ публиковать метаданные по адресу $metadata в соответствии с [OData-CSDL] (раздел 11.1.2) | ✓ |
Обновляемая служба OData | |
14. ДОЛЖЕН включать ссылки на редактирование (явно или неявно) для всех обновляемых или удаляемых ресурсов в соответствии с [OData-Atom] и [OData-JSON] | ✓ |
15. ДОЛЖЕН поддерживать POST новых сущностей для вставляемых наборов сущностей (разделы 11.4.1.5 и 11.4.2.1) | ✓ |
16. ДОЛЖЕН поддерживать POST новых связанных сущностей для обновляемых навигационных свойств (раздел 11.4.6.1) | x |
17. ДОЛЖЕН поддерживать POST к $ref для добавления существующей сущности в обновляемую связанную коллекцию (раздел 11.4.6.1) | x |
18. ДОЛЖЕН поддерживать PUT к $ref для установки существующей единственной обновляемой связанной сущности (раздел 11.4.6.3) | x |
19. ДОЛЖЕН поддерживать PATCH ко всем URL редактирования для обновляемых ресурсов (раздел 11.4.3) | ✓ |
20. ДОЛЖЕН поддерживать DELETE ко всем URL редактирования для удаляемых ресурсов (раздел 11.4.5) | ✓ |
21. ДОЛЖЕН поддерживать DELETE к $ref для удаления сущности из обновляемого навигационного свойства (раздел 11.4.6.2) | x |
22. ДОЛЖЕН поддерживать заголовок if-match при обновлении/удалении любых ресурсов, возвращенных с ETag (раздел 11.4.1.1) | x |
23. ДОЛЖЕН возвращать заголовок Location с URL редактирования или чтения созданного ресурса (раздел 11.4.1.5) | ✓ |
24. ДОЛЖЕН включать заголовок OData-EntityId в ответ на любой POST/PATCH, который возвращает 204 No Content (раздел 8.3.3) | ✓ |
25. ДОЛЖЕН поддерживать Upserts (раздел 11.4.4) | ✓ |
26. СЛЕДУЕТ поддерживать PUT и PATCH для отдельного примитива (раздел 11.4.9.1) или сложного (раздел 11.4.9.3) свойства (соответственно) | x |
27. СЛЕДУЕТ поддерживать DELETE для установки отдельного свойства в null (раздел 11.4.9.2) | x |
28. СЛЕДУЕТ поддерживать глубокие вставки (раздел 11.4.2.2) | x |
Уровень промежуточной совместимости OData | |
1. ДОЛЖЕН соответствовать уровню минимальной совместимости OData | x |
2. ДОЛЖЕН успешно анализировать [OData-ABNF] и либо следовать спецификации, либо возвращать 501 Not Implemented для неподдерживаемой функциональности (раздел 9.3.1) | ✓ |
3. ДОЛЖЕН поддерживать $select (раздел 11.2.4.1) | ✓ |
4. ДОЛЖЕН поддерживать приведение к производному типу в соответствии с [OData URL], если производные типы присутствуют в модели | x |
5. ДОЛЖЕН поддерживать $top (раздел 11.2.5.3) | ✓ |
6. ДОЛЖЕН поддерживать /$value для медиа-сущностей (раздел 4.10 в [OData URL]) и отдельных свойств (раздел 11.2.3.1) | ✓ |
7. ДОЛЖЕН поддерживать $filter (раздел 11.2.5.1) | ✓ |
7.1. ДОЛЖЕН поддерживать операции фильтрации eq, ne на свойствах сущностей в запрашиваемом наборе сущностей (раздел 11.2.5.1.1) | ✓ |
7.2. ДОЛЖЕН поддерживать псевдонимы в выражениях $filter (раздел 11.2.5.1.3) | ✓ |
7.3. СЛЕДУЕТ поддерживать дополнительные операции фильтрации (раздел 11.2.5.1.1) и ДОЛЖЕН возвращать 501 Not Implemented для неподдерживаемых операций фильтрации (раздел 9.3.1) | ✓ |
7.4. СЛЕДУЕТ поддерживать канонические функции (раздел 11.2.5.1.2) и ДОЛЖЕН возвращать 501 Not Implemented для неподдерживаемых канонических функций (раздел 9.3.1) | ✓ |
7.5. СЛЕДУЕТ поддерживать $filter на расширенных сущностях (раздел 11.2.4.2.1) | ✓ |
8. СЛЕДУЕТ публиковать метаданные по адресу $metadata в соответствии с [OData-CSDL] (раздел 11.1.2) | ✓ |
9. СЛЕДУЕТ поддерживать формат [OData-JSON] | ✓ |
10. СЛЕДУЕТ рассмотреть возможность поддержки базовой аутентификации, как указано в [RFC2617], через HTTPS для максимальной совместимости с общими клиентами | ✓ |
11. СЛЕДУЕТ поддерживать системный параметр запроса $search (раздел 11.2.5.6) | ✓ |
12. СЛЕДУЕТ поддерживать системный параметр запроса $skip (раздел 11.2.5.4) | ✓ |
13. СЛЕДУЕТ поддерживать системный параметр запроса $count (раздел 11.2.5.5) | ✓ |
14. СЛЕДУЕТ поддерживать $expand (раздел 11.2.4.2) | ✓ |
15. СЛЕДУЕТ поддерживать операторы lambda any и all для навигационных и коллекционных свойств (раздел 5.1.1.5 в [OData URL]) | x |
16. СЛЕДУЕТ поддерживать сегмент /$count для навигационных и коллекционных свойств (раздел 11.2.9) | ✓ |
17. СЛЕДУЕТ поддерживать $orderby по возрастанию и убыванию для отдельных свойств (раздел 11.2.5.2) | ✓ |
Уровень продвинутой совместимости OData | |
1. ДОЛЖЕН соответствовать как минимум уровню промежуточной совместимости OData | x |
2. ДОЛЖЕН публиковать метаданные по адресу $metadata в соответствии с [OData-CSDL] (раздел 11.1.2) | ✓ |
3. ДОЛЖЕН поддерживать формат [OData-JSON] | ✓ |
4. ДОЛЖЕН поддерживать сегмент /$count для навигационных и коллекционных свойств (раздел 11.2.9) | ✓ |
5. ДОЛЖЕН поддерживать операторы lambda any и all для навигационных и коллекционных свойств (раздел 5.1.1.5 в [OData URL]) | x |
6. ДОЛЖЕН поддерживать системный параметр запроса $skip (раздел 11.2.5.4) | ✓ |
7. ДОЛЖЕН поддерживать системный параметр запроса $count (раздел 11.2.5.5) | ✓ |
8. ДОЛЖЕН поддерживать $orderby по возрастанию и убыванию для отдельных свойств (раздел 11.2.5.2) | ✓ |
9. ДОЛЖЕН поддерживать $expand (раздел 11.2.4.2) | ✓ |
9.1. ДОЛЖЕН поддерживать возврат ссылок для расширенных свойств (раздел 11.2.4.2) | x |
9.2. ДОЛЖЕН поддерживать $filter на расширенных сущностях (раздел 11.2.4.2.1) | ✓ |
9.3. ДОЛЖЕН поддерживать сегмент cast в expand с производными типами (раздел 11.2.4.2.1) | x |
9.4. СЛЕДУЕТ поддерживать $orderby по возрастанию и убыванию для отдельных свойств (раздел 11.2.4.2.1) | x |
9.5. СЛЕДУЕТ поддерживать системный параметр запроса $count для расширенных свойств (раздел 11.2.4.2.1) | ✓ |
9.6. СЛЕДУЕТ поддерживать $top и $skip для расширенных свойств (раздел 11.2.4.2.1) | x |
9.7. СЛЕДУЕТ поддерживать $search для расширенных свойств (раздел 11.2.4.2.1) | x |
9.8. СЛЕДУЕТ поддерживать $levels для рекурсивного расширения (раздел 11.2.4.2.1.1) | x |
10. ДОЛЖЕН поддерживать системный параметр запроса $search (раздел 11.2.5.6) | x |
11. ДОЛЖЕН поддерживать пакетные запросы (раздел 11.7 и все подразделы) | ✓ |
12. ДОЛЖЕН поддерживать соглашения о путях ресурсов, определенные в [OData URL] | x |
13. СЛЕДУЕТ поддерживать асинхронные операции (раздел 8.2.8.8) | x |
14. СЛЕДУЕТ поддерживать отслеживание изменений Delta (раздел 8.2.8.6) | x |
15. СЛЕДУЕТ поддерживать запросы с перекрестным соединением, определенные в [OData URL] | x |
16. СЛЕДУЕТ поддерживать интерфейс службы OData, соответствующий метаданным (раздел 11.1.3) | x |