Configuration
public struct Configuration
Options which control the behavior of a Resource
.
See also
Service.configure(...)
-
Time before valid data is considered stale by
Resource.loadIfNeeded()
.The default is 30 seconds.
Note
This property is configured at the resource level, and does not depend on the HTTP method of any request. Siesta uses the value configured for GET; if you override this for other HTTP methods, Siesta will ignore it.Declaration
Swift
public var expirationTime: TimeInterval
-
Time
Resource.loadIfNeeded()
will wait before allowing a retry after a failed request.The default is 1 second.
Note
This property is configured at the resource level, and does not depend on the HTTP method of any request. Siesta uses the value configured for GET; if you override this for other HTTP methods, Siesta will ignore it.Declaration
Swift
public var retryTime: TimeInterval
-
Default request headers.
Note
Resource.request(...)
accepts arequestMutation
closure than can change the HTTP method of a request. If you override configuration based on HTTP method, then unlike other configuration properties,headers
depends on the initially requested, pre-mutation method of a request. All other configuration properties will depend on the post-mutation request method.Declaration
Swift
public var headers: [String : String]
-
Adds a closure that can modify HTTP headers, body, etc. before a
Request
is created. Use this to configure generic HTTP behavior not configurable via theheaders
property, such as a header that contains a nonce or a cryptographic digest of the request body.Note
These mutations are applied after any ad hoc mutation provided via the
requestMutation:
parameter ofResource.request(...)
. This is because Siesta requests get their body fromrequestMutation:
, and configured mutations often want to inspect (or even alter) that body.Note
Configuration depends on HTTP request method, but configured mutations can also alter the request method. Siesta will use the HTTP method of the pre-mutation request to determine what configuration to use for all mutations, and then use the post-mutation HTTP method for any further configuration.
Declaration
Swift
public mutating func mutateRequests(with mutation: @escaping Resource.RequestMutation)
-
Adds a closure to be called after a
Request
is created, but before it is started. Use this to globally observe requests, or wrap them in special behavior that is transparent to outside observers.You can add any number of decorators. Decorators are called in the order they were added, and each receives the request returned by the previous one. If the closure returns a different request than the one passed to it, then that request replaces the original one. In other words, a caller of
Resource.request(...)
orResource.load(...)
sees only the request returned by the last decorator, not the originally created one.Note
If a decorator returns a different request, then the original request is not started. This means that a decorator may choose to defer requests, or prevent them from ever reaching the network at all.
See also
Declaration
-
The sequence of transformations used to process server responses, optionally interspesed with cache(s) which may provide fast app startup & offline access.
Declaration
Swift
public var pipeline: Pipeline
-
Interval at which request hooks & observers receive progress updates. This affects how frequently
Request.onProgress(_:)
andResourceObserver.resourceRequestProgress(...)
are called, and how often theRequest.progress
property (which is partially time-based) is updated.Declaration
Swift
public var progressReportingInterval: TimeInterval