Interface RestModifyView<R extends RestResource,I>
- Type Parameters:
R
- type of the resource the view modifies.I
- type of input the JSON parser will parse the input into.
- All Superinterfaces:
RestView<R>
RestView that supports accepting input and changing a resource.
The input must be supplied as JSON as the body of the HTTP request. Modify views can be
invoked by any HTTP method that is not GET
, which includes POST
, PUT
,
DELETE
.
-
Method Summary
-
Method Details
-
apply
Response<?> apply(R resource, I input) throws AuthException, BadRequestException, ResourceConflictException, Exception Process the view operation by altering the resource.The value of the returned response is automatically converted to JSON unless it is a
BinaryResult
.The returned response defines the status code that is returned to the client. For RestModifyViews this is usually
200 OK
, but other 2XX or 3XX status codes are also possible (e.g.202 Accepted
if a background task was scheduled,204 No Content
if no content is returned,302 Found
for a redirect).Throwing a subclass of
RestApiException
results in a 4XX response to the client. For any other exception the client will get a500 Internal Server Error
response.- Parameters:
resource
- resource to modifyinput
- input after parsing from request- Returns:
- response to return to the client
- Throws:
AuthException
- the caller is not permitted to access this view.BadRequestException
- the request was incorrectly specified and cannot be handled by this view.ResourceConflictException
- the resource state does not permit this view to make the changes at this time.Exception
- the implementation of the view failed. The exception will be logged and HTTP 500 Internal Server Error will be returned to the client.
-