Skip to content

Commit 93b063e

Browse files
committed
add documentation
1 parent b46d299 commit 93b063e

File tree

2 files changed

+9
-19
lines changed

2 files changed

+9
-19
lines changed

docs/ResourceServices.md

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -83,30 +83,22 @@ In some cases it may be necessary to only expose a few methods on the resource.
8383
For this reason, we have created a hierarchy of service interfaces that can be used to get the
8484
exact implementation you require. Below is a table outlining these interfaces:
8585

86-
| METHOD | IResourceService | IResourceCmdService | IResourceQueryService | IGetAllService | IGetByIdService | IGetRelationshipService | IGetRelationships | ICreateService | IDeleteService | IUpdateService | IUpdateRelationshipService |
87-
|------------------------------------------|:----------------:|:-------------------:|:---------------------:|:--------------:|:---------------:|:-----------------------:|:-----------------:|:--------------:|:--------------:|:--------------:|:--------------------------:|
88-
| GET / || ||| | | | | | | |
89-
| GET /{id} || || || | | | | | |
90-
| GET /{id}/{relationship} || || | || | | | | |
91-
| GET /{id}/relationships/{relationship} || || | | || | | | |
92-
| POST / ||| | | | | || | | |
93-
| DELETE /{id} ||| | | | | | || | |
94-
| PATCH /{id} ||| | | | | | | || |
95-
| PATCH /{id}/relationships/{relationship} ||| | | | | | | | ||
86+
![interfaces](service_table.png)
87+
9688

9789
In order to take advantage of these interfaces you first need to inject the service for each implemented interface.
9890
Using Autofac, as an example, this is simply:
9991

10092
```csharp
10193
public class MyResourceService : ICreateService<MyResource>, IDeleteService<MyResource> {
102-
//...
94+
// ...
10395
}
96+
```
10497

98+
```csharp
10599
public class Startup {
106100
public IServiceProvider ConfigureServices(IServiceCollection services) {
107-
// ...
108101
builder.RegisterType<MyResourceService>().AsImplementedInterfaces();
109-
// ...
110102
}
111103
}
112104
```
@@ -115,15 +107,13 @@ Then in the controller, you should inherit the base controller and pass the serv
115107
the named, optional base parameters:
116108

117109
```csharp
118-
public class MyResourcesController : BaseJsonApiController<MyResource, int> {
110+
public class MyResourcesController : BaseJsonApiController<MyResource> {
111+
119112
public MyResourcesController(
120113
IJsonApiContext jsonApiContext,
121114
ICreateService<MyResource> create,
122-
IDeleteService<MyResource> delete)
123-
: base(
124-
jsonApiContext,
125-
create: create, // <--- pass the services to the base controller using named optional parameters
126-
delete: delete) { }
115+
IDeleteService<MyResource> delete
116+
) : base(jsonApiContext, create: create, delete: delete) { }
127117

128118
[HttpPost]
129119
public override async Task<IActionResult> PostAsync([FromBody] MyResource entity)

docs/service_table.png

165 KB
Loading

0 commit comments

Comments
 (0)