| 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
urlGenerate (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
serviceThe url of the endpoint to connect to. This url should not end with backslash.
.resourceShould not be used directly. Use $path() instead.
.query_optionsShould not be used directly. Use methods such as $select(), $filter() and $query() instead.
httr_argsAdditional parameters to pass to httr::GET
valueRead-only
Examples
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
Method print()
Print query, useful when debugging.
Usage
ODataQuery$print(top = 0, ...)
Arguments
topNumber 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
fnameName 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
nNumber 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
nNumber 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
sSearch 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
countWhether 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)