lundi 20 mars 2017

Design for REST API client

I want to create a REST API client, which for the same REST API server will call different URLs. This different calls will return JSON and XML to the client. What would be a good design pattern for this situation ?

So far I've come up with a combination of Strategy and Command:

public interface IRestCall {
    /** Setup the URL for the call. */
    void setup(IRestSetup setup) throws Exception;
    /** Execute the call, using the URL set up in the first step. 
     * @throws Exception */
    void call() throws Exception;
    /** Process the result and return to the user. */
    <T> T getResult(IRestResultProcessor<T> result) throws Exception;
} 

This is the Strategy interface. The context for the Strategy will be in some Get/Post/Put methods in a Facade class.

IRestSetup and IRestResultProcessor are interfaces for Command objects which will setup the URL for the REST API and will process the result.

Aucun commentaire:

Enregistrer un commentaire