Description Details Active bindings Methods See Also Examples
R6 class that represents an OData query
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.
url
Generate (encoded) url
new()
Create a class representing a query.
ODataQuery$new( service, .resource = "", .query_options = list(), httr_args = list() )
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
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
print()
Print query, useful when debugging.
ODataQuery$print(top = 0, ...)
top
Number of records to print.
...
Additional parameters are passed to print
\dontrun{ service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") service$print(10)$path("People")$print() }
path()
Supply path to the resource
ODataQuery$path(...)
...
Components that lead to resource path
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People")
get()
Query an individual record by ID parameters
ODataQuery$get(...)
...
ID-parameters (named or unnamed)
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") russellwhyte <- people_entity$get("russellwhyte")
func()
Path to an OData function
ODataQuery$func(fname, ...)
fname
Name of the function
...
Options passed to retrieve_data
closure
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") get_nearest_airport <- service$func('GetNearestAirport') \dontrun{ get_nearest_airport(lat = 33, lon = -118) }
query()
Supply custom query options that do not start with $
ODataQuery$query(...)
...
Named lists where the names are custom query options
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$query(filter = "FirstName eq 'scott'")$url
top()
Limit the number of results to n
ODataQuery$top(n = 10)
n
Number of records to return at most
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$top(10)
skip()
Skip first few items
ODataQuery$skip(n = 10)
n
Number of items to skip
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$skip(10)
select()
Select fields. If not present, all fields are returned.
ODataQuery$select(...)
...
Fields to select
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$select("FirstName", "LastName")
filter()
Apply filter to result
ODataQuery$filter(...)
...
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
.
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$filter(FirstName.eq = 'Scott')
expand()
Expand on expansion properties
ODataQuery$expand(...)
...
Properties to extend on
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$expand("Friends")
orderby()
Order results by one or more keys
ODataQuery$orderby(...)
...
Keys to order by. To order in descending order, the key can be prefixed by a negative sign.
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$orderby('Concurrency') people_entity$orderby('-Concurrency')
search()
Search the entity
ODataQuery$search(s)
s
Search string as defined by the endpoint.
service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity <- service$path("People") people_entity$search('Boise')
compute()
Compute properties
Add additional properties to query computed from other attributes.
ODataQuery$compute(...)
...
Named list of properties to 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")
retrieve()
Retrieve data
ODataQuery$retrieve(count = FALSE, ...)
count
Whether to include a count of the total number of records
...
Passed to retrieve_data
\dontrun{ service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity$retrieve() }
all()
Retrieve all data pages
Return concatenation of value of all pages
ODataQuery$all(...)
...
Passed to retrieve_all
\dontrun{ service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity$all() people_entity$all(jsonlite_args = list(simplifyVector = False)) }
one()
Retrieve individual
ODataQuery$one(...)
...
Passed to retrieve_one
\dontrun{ service <- ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW") people_entity$top(1)$one(default = NA) }
and_query()
for details.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | ## ------------------------------------------------
## 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)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.