Class JsonPowerHttpService

    • Constructor Summary

      Constructors 
      Constructor Description
      JsonPowerHttpService​(com.fasterxml.jackson.databind.ObjectMapper mapper)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.fasterxml.jackson.databind.JsonNode doGet​(java.lang.String type, java.lang.String name, com.fasterxml.jackson.databind.JsonNode parameters, JsonRequest request)
      Respond to an HTTP GET request for the requested name.
      com.fasterxml.jackson.databind.JsonNode doGetList​(java.lang.String type, com.fasterxml.jackson.databind.JsonNode data, JsonRequest request)
      Respond to an HTTP GET request for a list of items of type.
      com.fasterxml.jackson.databind.JsonNode doPost​(java.lang.String type, java.lang.String name, com.fasterxml.jackson.databind.JsonNode data, JsonRequest request)
      Respond to an HTTP POST request for the requested name.
      com.fasterxml.jackson.databind.JsonNode doSchema​(java.lang.String type, boolean server, JsonRequest request)
      Get the JSON Schema for the data property of the requested type of JSON object.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • JsonPowerHttpService

        public JsonPowerHttpService​(com.fasterxml.jackson.databind.ObjectMapper mapper)
    • Method Detail

      • doGet

        public com.fasterxml.jackson.databind.JsonNode doGet​(java.lang.String type,
                                                             @CheckForNull
                                                             java.lang.String name,
                                                             com.fasterxml.jackson.databind.JsonNode parameters,
                                                             JsonRequest request)
                                                      throws JsonException
        Description copied from class: JsonHttpService
        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 JsonHttpService
        Parameters:
        type - the type of the requested object
        name - the system name of the requested object
        parameters - JSON data set of attributes 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.JsonNode doPost​(java.lang.String type,
                                                              java.lang.String name,
                                                              com.fasterxml.jackson.databind.JsonNode data,
                                                              JsonRequest request)
                                                       throws JsonException
        Description copied from class: JsonHttpService
        Respond to an HTTP POST request for the requested name.

        This method should throw a 400 Invalid Request error if the named object does not exist.

        Specified by:
        doPost in class JsonHttpService
        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 updated
        request - the JSON request
        Returns:
        a JSON description of the requested object after updates have been applied
        Throws:
        JsonException - if the named object does not exist or other error occurs
      • doGetList

        public com.fasterxml.jackson.databind.JsonNode doGetList​(java.lang.String type,
                                                                 com.fasterxml.jackson.databind.JsonNode data,
                                                                 JsonRequest request)
                                                          throws JsonException
        Description copied from class: JsonHttpService
        Respond to an HTTP GET request for a list of items of type.

        This is called by the JsonServlet to handle get requests for a type, but no name. Services that do not have named objects, such as the JsonTimeHttpService should respond to this with a list containing a single JSON object. Services that can't return a list may throw a 400 Bad Request JsonException in this case.

        Specified by:
        doGetList in class JsonHttpService
        Parameters:
        type - the type of the requested list
        data - JSON data set of attributes of the requested objects
        request - the JSON request
        Returns:
        a JSON list or message containing type "list", the list as data, and the passed in id
        Throws:
        JsonException - may be thrown by concrete implementations
      • doSchema

        public com.fasterxml.jackson.databind.JsonNode doSchema​(java.lang.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