ODataQuery {ODataQuery}R Documentation

ODataQuery

Description

R6 class that represents an OData query

Details

This class has methods to build and navigate OData services:

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)

[Package ODataQuery version 0.5.3 Index]