Class JsonRouteHttpService


public class JsonRouteHttpService
extends JsonNamedBeanHttpService<Route>
Provide JSON HTTP services for managing Routes.
  • Constructor Details

  • Method Details

    • doGet

      public com.fasterxml.jackson.databind.node.ObjectNode doGet​(Route route, String name, String type, JsonRequest request) throws JsonException
      Description copied from class: JsonNamedBeanHttpService
      Respond to an HTTP GET request for the requested name.

      If name is null, return a list of all objects for the given type, if appropriate.

      This method should throw a 500 Internal Server Error if type is not recognized.

      Specified by:
      doGet in class JsonNamedBeanHttpService<Route>
      Parameters:
      route - the requested object
      name - the name of the requested object
      type - the type of the requested object
      request - the JSON request
      Returns:
      a JSON description of the requested object
      Throws:
      JsonException - if the named object does not exist or other error occurs
    • doPost

      public com.fasterxml.jackson.databind.node.ObjectNode doPost​(Route route, String name, String type, com.fasterxml.jackson.databind.JsonNode data, JsonRequest request) throws JsonException
      Respond to an HTTP POST request for the requested route.

      This method throws a 404 Not Found error if the named route does not exist.

      Note: attempting to set a state of JSON.INACTIVE or JSON.UNKNOWN has no effect. Setting a state of JSON.TOGGLE has the same effect as setting a state of JSON.ACTIVE. Any other states throw a 400 Invalid Request error.

      Specified by:
      doPost in class JsonNamedBeanHttpService<Route>
      Parameters:
      type - one of JsonRouteServiceFactory.ROUTE or JsonRouteServiceFactory.ROUTES
      name - the name of the requested route
      data - JSON data set of attributes of the requested route to be updated
      request - the JSON request
      route - the requested object
      Returns:
      a JSON description of the requested route. Since a route changes state on a separate thread, this may return a route in the state prior to this call, the target state, or an intermediate state.
      Throws:
      JsonException - if an error occurs
    • doPut

      public com.fasterxml.jackson.databind.JsonNode doPut​(String type, String name, com.fasterxml.jackson.databind.JsonNode data, JsonRequest request) throws JsonException
      Description copied from class: JsonNamedBeanHttpService
      Respond to an HTTP PUT request for the requested name.

      Throw an HTTP 405 Method Not Allowed exception if new objects of the type are not intended to be addable. Override if the implementing class needs to prevent PUT methods from functioning or need to perform additional validation prior to creating the NamedBean.

      Overrides:
      doPut in class JsonNamedBeanHttpService<Route>
      Parameters:
      type - the type of the requested object
      name - the system name of the requested object
      data - JSON data set of attributes of the requested object to be created or updated
      request - the JSON request
      Returns:
      a JSON description of the requested object
      Throws:
      JsonException - if the method is not allowed or other error occurs
    • doSchema

      public com.fasterxml.jackson.databind.JsonNode doSchema​(String type, boolean server, JsonRequest request) throws JsonException
      Description copied from class: JsonHttpService
      Get the JSON Schema for the data property of the requested type of JSON object. It is a invalid for implementations to not return a valid schema that clients can use to validate a request to or response from the JSON services.

      Note that a schema must be contained in a standard object as:

      {"type":"schema", "data":{"schema":<em>schema</em>, "server":boolean}}

      If using JsonHttpService.doSchema(String, boolean, String, String, int), an implementation can be as simple as: return doSchema(type, server, "path/to/client/schema.json", "path/to/server/schema.json", id);

      Specified by:
      doSchema in class JsonHttpService
      Parameters:
      type - the type for which a schema is requested
      server - true if the schema is for a message from the server; false if the schema is for a message from the client
      request - the JSON request
      Returns:
      a JSON Schema valid for the type
      Throws:
      JsonException - if an error occurs preparing schema; if type is is not a type handled by this service, this must be thrown with an error code of 500 and the localized message ERROR_UNKNOWN_TYPE
    • getType

      protected String getType()
      Description copied from class: JsonNamedBeanHttpService
      Get the JSON type supported by this service.
      Specified by:
      getType in class JsonNamedBeanHttpService<Route>
      Returns:
      the JSON type
    • getManager

      Description copied from class: JsonNamedBeanHttpService
      Get the expected manager for the supported JSON type. This should normally be the default manager.
      Specified by:
      getManager in class JsonNamedBeanHttpService<Route>
      Returns:
      the manager