Class JsonBlockHttpService

    • Constructor Detail

      • JsonBlockHttpService

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

      • doGet

        public com.fasterxml.jackson.databind.node.ObjectNode doGet​(Block block,
                                                                    java.lang.String name,
                                                                    java.lang.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<Block>
        Parameters:
        block - 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​(Block block,
                                                                     java.lang.String name,
                                                                     java.lang.String type,
                                                                     com.fasterxml.jackson.databind.JsonNode data,
                                                                     JsonRequest request)
                                                              throws JsonException
        Description copied from class: JsonNamedBeanHttpService
        Respond to an HTTP POST request for the requested name.
        Specified by:
        doPost in class JsonNamedBeanHttpService<Block>
        Parameters:
        block - the requested object
        name - the name of the requested object
        type - the type of the requested object
        data - data describing the requested object
        request - the JSON request
        Returns:
        a JSON description of the requested object
        Throws:
        JsonException - if an error occurs
      • doDelete

        protected void doDelete​(Block bean,
                                java.lang.String name,
                                java.lang.String type,
                                com.fasterxml.jackson.databind.JsonNode data,
                                JsonRequest request)
                         throws JsonException
        Description copied from class: JsonNamedBeanHttpService
        Delete the requested bean.

        This method must be overridden to allow a bean to be deleted. The simplest overriding method body is: deleteBean(bean, name, type, data, locale, id);

        Overrides:
        doDelete in class JsonNamedBeanHttpService<Block>
        Parameters:
        bean - the bean to delete
        name - the named of the bean to delete
        type - the type of the bean to delete
        data - data describing the named bean
        request - the JSON request
        Throws:
        JsonException - if an error occurs
      • 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