ODataQuery {ODataQuery} | R Documentation |
ODataQuery
Description
R6 class that represents an OData query
Details
This class has methods to build and navigate OData services:
Use methods such as
$path()
and$get()
to find a path.Use methods such as
$select()
and$filter()
to make your query.Use methods such as
$retrieve()
,$all()
and$one()
to obtain the results.
Active bindings
url
Generate (encoded) url
Methods
Public methods
Method new()
Create a class representing a query.
Usage
ODataQuery$new( service, .resource = "", .query_options = list(), httr_args = list() )
Arguments
service
The url of the endpoint to connect to. This url should not end with backslash.
.resource
Should not be used directly. Use $path() instead.
.query_options
Should not be used directly. Use methods such as $select(), $filter() and $query() instead.
httr_args
Additional parameters to pass to httr::GET
value
Read-only
Examples
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
Method print()
Print query, useful when debugging.
Usage
ODataQuery$print(top = 0, ...)
Arguments
top
Number of records to print.
...
Additional parameters are passed to print
Examples
\dontrun{ service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") service$print(10)$path("People")$print() }
Method path()
Supply path to the resource
Usage
ODataQuery$path(...)
Arguments
...
Components that lead to resource path
Examples
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People")
Method get()
Query an individual record by ID parameters
Usage
ODataQuery$get(...)
Arguments
...
ID-parameters (named or unnamed)
Examples
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") russellwhyte <- people_entity$get("russellwhyte")
Method func()
Path to an OData function
Usage
ODataQuery$func(fname, ...)
Arguments
fname
Name of the function
...
Options passed to retrieve_data
Returns
closure
Examples
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") get_nearest_airport <- service$func('GetNearestAirport') \dontrun{ get_nearest_airport(lat = 33, lon = -118) }
Method query()
Supply custom query options that do not start with $
Usage
ODataQuery$query(...)
Arguments
...
Named lists where the names are custom query options
Examples
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$query(filter = "FirstName eq 'scott'")$url
Method top()
Limit the number of results to n
Usage
ODataQuery$top(n = 10)
Arguments
n
Number of records to return at most
Examples
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$top(10)
Method skip()
Skip first few items
Usage
ODataQuery$skip(n = 10)
Arguments
n
Number of items to skip
Examples
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$skip(10)
Method select()
Select fields. If not present, all fields are returned.
Usage
ODataQuery$select(...)
Arguments
...
Fields to select
Examples
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$select("FirstName", "LastName")
Method filter()
Apply filter to result
Usage
ODataQuery$filter(...)
Arguments
...
Can be a raw odata query or query options. It's recommended to use query options because these will automatically escape parameters. The parameters are passed on to
and_query
.
Examples
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$filter(FirstName.eq = 'Scott')
Method expand()
Expand on expansion properties
Usage
ODataQuery$expand(...)
Arguments
...
Properties to extend on
Examples
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$expand("Friends")
Method orderby()
Order results by one or more keys
Usage
ODataQuery$orderby(...)
Arguments
...
Keys to order by. To order in descending order, the key can be prefixed by a negative sign.
Examples
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$orderby('Concurrency') people_entity$orderby('-Concurrency')
Method search()
Search the entity
Usage
ODataQuery$search(s)
Arguments
s
Search string as defined by the endpoint.
Examples
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$search('Boise')
Method compute()
Compute properties
Add additional properties to query computed from other attributes.
Usage
ODataQuery$compute(...)
Arguments
...
Named list of properties to compute
Examples
# Not really supported by this particular service. service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$compute(a = "5 MUL Concurrency")
Method retrieve()
Retrieve data
Usage
ODataQuery$retrieve(count = FALSE, ...)
Arguments
count
Whether to include a count of the total number of records
...
Passed to retrieve_data
Examples
\dontrun{ service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity$retrieve() }
Method all()
Retrieve all data pages
Return concatenation of value of all pages
Usage
ODataQuery$all(...)
Arguments
...
Passed to retrieve_all
Examples
\dontrun{ service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity$all() people_entity$all(jsonlite_args = list(simplifyVector = False)) }
Method one()
Retrieve individual
Usage
ODataQuery$one(...)
Arguments
...
Passed to retrieve_one
Examples
\dontrun{ service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity$top(1)$one(default = NA) }
See Also
and_query()
for details.
Examples
## ------------------------------------------------
## Method `ODataQuery$new`
## ------------------------------------------------
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
## ------------------------------------------------
## Method `ODataQuery$print`
## ------------------------------------------------
## Not run:
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
service$print(10)$path("People")$print()
## End(Not run)
## ------------------------------------------------
## Method `ODataQuery$path`
## ------------------------------------------------
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
people_entity <- service$path("People")
## ------------------------------------------------
## Method `ODataQuery$get`
## ------------------------------------------------
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
people_entity <- service$path("People")
russellwhyte <- people_entity$get("russellwhyte")
## ------------------------------------------------
## Method `ODataQuery$func`
## ------------------------------------------------
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
get_nearest_airport <- service$func('GetNearestAirport')
## Not run:
get_nearest_airport(lat = 33, lon = -118)
## End(Not run)
## ------------------------------------------------
## Method `ODataQuery$query`
## ------------------------------------------------
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
people_entity <- service$path("People")
people_entity$query(filter = "FirstName eq 'scott'")$url
## ------------------------------------------------
## Method `ODataQuery$top`
## ------------------------------------------------
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
people_entity <- service$path("People")
people_entity$top(10)
## ------------------------------------------------
## Method `ODataQuery$skip`
## ------------------------------------------------
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
people_entity <- service$path("People")
people_entity$skip(10)
## ------------------------------------------------
## Method `ODataQuery$select`
## ------------------------------------------------
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
people_entity <- service$path("People")
people_entity$select("FirstName", "LastName")
## ------------------------------------------------
## Method `ODataQuery$filter`
## ------------------------------------------------
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
people_entity <- service$path("People")
people_entity$filter(FirstName.eq = 'Scott')
## ------------------------------------------------
## Method `ODataQuery$expand`
## ------------------------------------------------
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
people_entity <- service$path("People")
people_entity$expand("Friends")
## ------------------------------------------------
## Method `ODataQuery$orderby`
## ------------------------------------------------
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
people_entity <- service$path("People")
people_entity$orderby('Concurrency')
people_entity$orderby('-Concurrency')
## ------------------------------------------------
## Method `ODataQuery$search`
## ------------------------------------------------
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
people_entity <- service$path("People")
people_entity$search('Boise')
## ------------------------------------------------
## Method `ODataQuery$compute`
## ------------------------------------------------
# Not really supported by this particular service.
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
people_entity <- service$path("People")
people_entity$compute(a = "5 MUL Concurrency")
## ------------------------------------------------
## Method `ODataQuery$retrieve`
## ------------------------------------------------
## Not run:
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
people_entity$retrieve()
## End(Not run)
## ------------------------------------------------
## Method `ODataQuery$all`
## ------------------------------------------------
## Not run:
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
people_entity$all()
people_entity$all(jsonlite_args = list(simplifyVector = False))
## End(Not run)
## ------------------------------------------------
## Method `ODataQuery$one`
## ------------------------------------------------
## Not run:
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
people_entity$top(1)$one(default = NA)
## End(Not run)