info@selectline.de | +49 391 5555-080 | SelectLine – steht jedem Unternehmen

Beschreibung OData Filter

OData steht für „Open Data Protocol“ und ist ein von Microsoft entwickeltes Protokoll, das die Erstellung und Konsumierung von datenzentrierten RESTful APIs erleichtert. Es wurde entwickelt, um den Austausch von strukturierten Daten zwischen Anwendungen verschiedener Plattformen zu erleichtern (z.B. Devextreme Grids, Excel). OData basiert auf gängigen Webtechnologien wie HTTP, AtomPub und JSON und definiert einen Satz von Konventionen für die Erstellung von RESTful APIs, die den Zugriff auf und die Manipulation von Daten über das Internet ermöglichen.

Folgender Eintrag filtert alle Konten nach Finanzkonto
https://domain:port/api/Accounting/Accounts?top=10&filter=Type eq 'FinanceAccount'

Offizielle OData Homepage

Anzahl Datensätze - Paginierung

Standardmäßig werden bei einer Abfrage einer GET-Route, die OData fähig ist, immer alle Datensätze geliefert. Möchte man die Anzahl beschränken muss man das mittels „top“ realisieren.

Dazu ein Beispiel. Die Ergebnismenge wird in Seiten zu je 20 Datensätzen eingeteilt und die 5. Seite abgerufen.
Url:
GET https://domain:port/api/Accounting/Accounts?top=20&skip=80

Welche Query Optionen unterstützen wir?

OData Query Syntax

Bisher unterstützen wir nur Query-Möglichkeiten für GET-Routen.

Select

Gibt nur die angegebene Spalten des Objekts zurück.

https://domain:port/api/Accounting/Accounts?select=Account,AccountNumber,Name
{
    "value": [
        {
            "Account": "10",
            "AccountNumber": 10,
            "Name": "Entg.erwor.Konzessionen gew.Schutzrechte"
        },
        {
            "Account": "100",
            "AccountNumber": 100,
            "Name": "Fabrikbauten"
        },
        {
            "Account": "1000",
            "AccountNumber": 1000,
            "Name": "Kasse"
        }
    ]
}
        

Filter

Gibt die Datenmenge gefiltert nach dem angegebenen Ausdruck zurück.

Logische Operatoren

https://domain:port/api/Accounting/Accounts?filter=Type eq 'FinanceAccount'
{
    "value": [
        {
            "Account": "1000",
            "AccountNumber": 1000,
            "Type": "FinanceAccount"
        },
        {
            "Account": "1010",
            "AccountNumber": 1010,
            "Type": "FinanceAccount"
        },
        {
            "Account": "1020",
            "AccountNumber": 1020,
            "Type": "FinanceAccount"
        }
    ]
}
        

Order by

Gibt die, nach der angegebenen Spalte sortierten, Datenmenge zurück.

https://domain:port/api/Accounting/Accounts?orderby=Account
{
    "value": [
        {
            "Account": "10",
            "AccountNumber": 10,
            "Type": "Debtor"
        },
        {
            "Account": "100",
            "AccountNumber": 100,
            "Type": "Debtor"
        },
        {
            "Account": "1000",
            "AccountNumber": 1000,
            "Type": "Debtor"
        }
    ]
}
        

Count

Gibt im Objekt zusätzlich aus wie viele Datensätze gefunden wurden.

https://domain:port/api/Accounting/Accounts?count=true
{
    "@odata.count": 2107,
    "value": [...]
}
        

Top

Begrenzt die Datenmenge auf die gegebene Anzahl. Mit Skip und Top gemeinsam lässt sich Paging realisieren.

https://domain:port/api/Accounting/Accounts?top=3
{
    "value": [
        {
            "Account": "10",
            "AccountNumber": 10,
            "Type": "Debtor"
        },
        {
            "Account": "100",
            "AccountNumber": 100,
            "Type": "Debtor"
        },
        {
            "Account": "1000",
            "AccountNumber": 1000,
            "Type": "Debtor"
        }
    ]
}
        

Skip

Überspringt die gegebene Anzahl Datensätze der Datenmenge. Mit Skip und Top gemeinsam lässt sich Paging realisieren.

https://domain:port/api/Accounting/Accounts?skip=10
{
    "value": [
        {
            "Account": "10007",
            "AccountNumber": 10007,
            "Type": "Debtor"
        },
        {
            "Account": "10008",
            "AccountNumber": 10008,
            "Type": "Debtor"
        },
        {
            "Account": "10009",
            "AccountNumber": 10009,
            "Type": "Debtor"
        }
    ]
}