Service<Id, Data> class
A front-facing interface that can present data to and operate on data on behalf of the user.
Heavily inspired by FeathersJS. <3
- Inheritance
-
- Object
- Router<
RequestHandler> - Routable
- Service
- Implementers
Constructors
-
Service.new({FutureOr<
Data> readData(RequestContext, ResponseContext)?}) -
An optional
readData
function can be passed to handle non-map/non-json bodies.
Properties
- app ↔ Angel
-
getter/setter pair
-
bootstrappers
→ List<
RequestHandler> -
Handlers that must run to ensure this service's functionality.
no setter
- configuration → Map
-
A Map of application-specific data that can be accessed.
finalinherited
- container → Container
-
A
Container
used to inject dependencies.no setterinherited - hashCode → int
-
The hash code for this object.
no setterinherited
- isAppActive → bool
-
no setter
-
middleware
→ List<
RequestHandler> -
no setterinherited
-
mounted
→ Map<
Pattern, Router< RequestHandler> > -
no setterinherited
-
onService
→ Stream<
Service> -
Fired whenever a service is added to this instance.
no setterinherited
-
readData
→ FutureOr<
Data> Function(RequestContext, ResponseContext)? -
A Function that reads the request body and converts it into
Data
.no setter -
routes
→ List<
Route< RequestHandler> > -
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
services
→ Map<
Pattern, Service> -
A set of Service objects that have been mapped into routes.
no setterinherited
Methods
-
addRoute(
String method, String path, RequestHandler handler, {Iterable< RequestHandler> middleware = const {}}) → Route<RequestHandler> -
Adds a route that responds to the given path
for requests with the given method (case-insensitive).
Provide '*' as the method to respond to all methods.
inherited
-
addRoutes(
[Service? service]) → void - Generates RESTful routes pointing to this class's methods.
-
all(
String path, RequestHandler handler, {Iterable< RequestHandler> middleware = const []}) → Route<RequestHandler> -
Adds a route that responds to any request matching the given path.
inherited
-
chain(
Iterable< RequestHandler> middleware) → ChainedRouter<RequestHandler> -
Prepends the given
middleware
to any routes created by the resulting router.inherited -
clone(
) → Router< RequestHandler> -
Returns a Router with a duplicated version of this tree.
inherited
-
close(
) → void -
Closes this service, including any database connections or stream controllers.
override
-
create(
Data data, [Map< String, dynamic> ? params]) → Future<Data> - Creates a resource.
-
delete(
String path, RequestHandler handler, {Iterable< RequestHandler> middleware = const []}) → Route<RequestHandler> -
Adds a route that responds to a DELETE request.
inherited
-
dumpTree(
{dynamic callback(String tree)?, String header = 'Dumping route tree:', String tab = ' '}) → void -
Creates a visual representation of the route hierarchy and
passes it to a callback. If none is provided,
print
is called.inherited -
enableCache(
) → void -
Enables the use of a cache to eliminate the overhead of consecutive resolutions of the same path.
inherited
-
findHookedService<
T extends Service> (Pattern path) → HookedService< dynamic, dynamic, T> ? -
Shorthand for finding a HookedService in a statically-typed manner.
inherited
-
findOne(
[Map< String, dynamic> ? params, String errorMessage = 'No record was found matching the given query.']) → Future<Data> -
Retrieves the first object from the result of calling index with the given
params
. -
findService<
T extends Service> (Pattern path) → T? -
Retrieves the service assigned to the given path.
inherited
-
findServiceOf<
Id, Data> (Pattern path) → Service< Id, Data> ? -
Shorthand for finding a Service in a statically-typed manner.
inherited
-
get(
String path, RequestHandler handler, {Iterable< RequestHandler> middleware = const []}) → Route<RequestHandler> -
Adds a route that responds to a GET request.
inherited
-
group(
String path, void callback(Router< RequestHandler> router), {Iterable<RequestHandler> middleware = const [], String name = ''}) → SymlinkRoute<RequestHandler> -
Creates a route, and allows you to add child routes to it
via a Router instance.
inherited
-
groupAsync(
String path, FutureOr< void> callback(Router<RequestHandler> router), {Iterable<RequestHandler> middleware = const [], String name = ''}) → Future<SymlinkRoute< RequestHandler> > -
Asynchronous equivalent of group.
inherited
-
head(
String path, RequestHandler handler, {Iterable< RequestHandler> middleware = const []}) → Route<RequestHandler> -
Adds a route that responds to a HEAD request.
inherited
-
index(
[Map< String, dynamic> ? params]) → Future<List< Data> > - Retrieves all resources.
-
map<
U> (U encoder(Data), Data decoder(U), {FutureOr< U> readData(RequestContext, ResponseContext)?}) → Service<Id, U> - Creates an AnonymousService that wraps over this one, and maps input and output using two converter functions.
-
modify(
Id id, Data data, [Map< String, dynamic> ? params]) → Future<Data> - Modifies a resource.
-
mount(
String path, Router< RequestHandler> router) → SymlinkRoute<RequestHandler> -
Incorporates another Router's routes into this one's.
inherited
-
Generates a URI string based on the given input.
Handy when you have named routes.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onHooked(
HookedService< dynamic, dynamic, Service> hookedService) → void - Invoked when this service is wrapped within a HookedService.
-
options(
String path, RequestHandler handler, {Iterable< RequestHandler> middleware = const {}}) → Route<RequestHandler> -
Adds a route that responds to a OPTIONS request.
inherited
-
patch(
String path, RequestHandler handler, {Iterable< RequestHandler> middleware = const []}) → Route<RequestHandler> -
Adds a route that responds to a PATCH request.
inherited
-
post(
String path, RequestHandler handler, {Iterable< RequestHandler> middleware = const []}) → Route<RequestHandler> -
Adds a route that responds to a POST request.
inherited
-
put(
String path, RequestHandler handler, {Iterable< RequestHandler> middleware = const []}) → Route -
Adds a route that responds to a PUT request.
inherited
-
read(
Id id, [Map< String, dynamic> ? params]) → Future<Data> - Retrieves the desired resource.
-
readMany(
List< Id> ids, [Map<String, dynamic> ? params]) → Future<List< Data> > - Reads multiple resources at once.
-
remove(
Id id, [Map< String, dynamic> ? params]) → Future<Data> - Removes the given resource.
-
resolve(
String absolute, String relative, List< RoutingResult< out, {String method = 'GET', bool strip = true}) → boolRequestHandler?> > -
Finds the first Route that matches the given path,
with the given method.
inherited
-
resolveAbsolute(
String path, {String method = 'GET', bool strip = true}) → Iterable< RoutingResult< RequestHandler> > -
Returns the result of resolve with
path
passed as bothabsolute
andrelative
.inherited -
resolveAll(
String absolute, String relative, {String method = 'GET', bool strip = true}) → Iterable< RoutingResult< RequestHandler> > -
Finds every possible Route that matches the given path,
with the given method.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
update(
Id id, Data data, [Map< String, dynamic> ? params]) → Future<Data> - Overwrites a resource.
-
use<
Id, Data, T extends Service< (Id, Data> >String path, T service) → HookedService< Id, Data, T> -
Mounts a
service
at the givenpath
.inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
parseId<
T> (dynamic id) → T -
Transforms an
id
(whether it is a String, num, etc.) into one acceptable by a service.
Constants
-
specialQueryKeys
→ const List<
String> - A List of keys that services should ignore, should they see them in the query.