Code Monkey home page Code Monkey logo

ddf-jsonrpc's Issues

Make JSON RPC endpoint pluggable

Split out the core of JSON RPC endpoint into a new module. Split out other method sets into other modules. Allow method sets to be dynamically loaded into the JSON RPC endpoint.

Add support for sending full metacardType definition in responses

Currently we only send the metacardType name of the associated metacard. There should be a way to get the full attribute definitions of the metacardType.

An Optional extra step, allow it to be requested/excluded on demand since it will add a fairly large amount of (repetitive) data to the payload.

Something else to think about that will build on top of this is somehow identifying the metacardTypes with an absolute identifier (perhaps a hash) so that types could be only requested if the definition is not already known.

Update dependencies

Update dependencies but remove any unnecessary dependencies (large dependencies used for a few classes) first.

Add support for request properties

We should add support for properties so that we can more fully support the catalogframework api. Many things use properties to propagate extra information.

Since there are security concerns we should have an allow list of properties that are allowed to be sent and added to the corresponding request sent to catalog framework.

Add support for transforming metacards

Add support for transforming metacards akin to the CatalogFramework methods transform

BinaryContent transform(
      Metacard metacard, String transformerId, Map<String, Serializable> requestProperties)
      throws CatalogTransformerException;
BinaryContent transform(
      SourceResponse response, String transformerId, Map<String, Serializable> requestProperties)
      throws CatalogTransformerException;

One thing to think about with this is how the input is provided over the remote interface. Does the caller need to supply the full data (aka metacard, sourceresponse, etc) and have it be reconstructed by us? Can we do some sort of value by reference where the caller can supply reference to metacards,etc that are desired and the querying can be done by us?

Support better error messages for metacard creation issues

Instead of silently working and assuming or silently dropping when creating metacard attributes, we should work to return helpful error messages of what went wrong and why for consumers to know why an attribute wasn't included or such.

One possible implementation could be by changing the CatalogMethods::getAttribute method to somehow return more information (possibly a third piece of information?) on if attributes were found to have issues.

Separate metacard actions from Query results

Currently Metacard actions are coupled to the query response results. Metacard actions are obtained by using a different api (from platform) and should not be represented in the data the catalog methods return. This should be separated to its own RPC method and a mechanism devised to get the metacards actions.

Since the interface for ActionProvider is public <T> Action getAction(T subject); There will need to be a way devised to supply the paramter subject to the action provider. This is often times a metacard (and could be represented by a reference to a metacard and then fetched by the jsonrpc) but may not always be a metacard. the fact that an abitrary subject can be passed into this interface will need to be accounted for in the parameters of this rpc endpoint.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.