Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Designing Rest with Raml-3

Designing Rest with Raml-3

ksuhas4455

August 07, 2017
Tweet

More Decks by ksuhas4455

Other Decks in Programming

Transcript

  1. BEFORE WE START DISCUSSING ON RESOURCETYPES, LET’S SEE WHAT IS

    ACTUALLY A RESOURCETYPES IS ??? RESOURCETYPES :- A RESOURCE TYPE IS A PARTIAL RESOURCE DEFINITION THAT, LIKE A RESOURCE, CAN SPECIFY A DESCRIPTION AND METHODS AND THEIR PROPERTIES. RESOURCES THAT USE A RESOURCE TYPE INHERIT ITS PROPERTIES, SUCH AS ITS METHODS.
  2. AS WE KNOW, THERE MAY BE A LOT OF REPETITIVE

    CODE, AND MAY HAVE SEVERAL METHODS THAT HAVE SIMILAR DESCRIPTIONS, METHODS, RESPONSE TYPES (FOR EXAMPLE ERROR CODES) AND OTHER INFORMATION. RAML HAS A FEATURE CALLED RESOURCETYPES, OR A TEMPLATING ENGINE THAT LETS US TO DEFINE A TEMPLATE (OR MULTIPLE TEMPLATES) AND THAT CAN BE USED FOR MULTIPLE RESOURCES WITHOUT REPEATING THE CODE.
  3. LET’S CONSIDER, WE HAVE RESOURCE /BOOKS AND NOW WE WANT

    TO IMPLEMENT 2 METHODS IN IT (GET, POST). SO, EACH OF THE METHODS WILL HAVE A DESCRIPTION, RESPONSE TYPES ETC. BUT NOW, LET’S CONSIDER WE HAVE A REQUIREMENT THAT, THE METHODS (POST, GET) CAN ALSO BE USED FOR OTHER RESOURCES THAT WE MAY DECLARE FOR LATER USE. SO, TO MAKE IT SIMPLER WE WILL CREATE A RESOURCETYPES THAT CAN BE USED BY ANY RESOURCE IN THE RAML FILE WITHOUT REPEATING THE CODE.
  4. Here, we can see that we have created a template

    resourceTypes where we are defining both the methods GET and POST. We are also setting description and response format for both the methods. Also, we are referring the response example from parameters :-
  5. Now, we are defining a resource that will call and

    use this resourceTypes template. Infact this makes easy to reuse the code, without repeating the method structure again and again for any other resources. Here we can see that, the resource /books is calling and using the resourceTypes template. So, now the /books resource will have both the method GET and POST defined in the template. Also, the response format is taking the response parameter from here
  6. API DESIGNER PLATFORM PROVIDES AN OPTION TO TEST OUR APIS

    THAT WE BUILD IN IT. IN THE LEFT SIDE WE CAN SEE A BUTTON CALLED MOCKING SERVICE, IF WE ON THAT BUTTON, THE API WILL BE READY FOR A MOCK TEST. YOU CAN SEE IN THE CODE, THAT OUR BASEURI HAS BEEN COMMENTED AND A NEW MOCK URI IS GENERATED.
  7. SO, TO TEST THE API, WE NEED TO HIT TRY

    IT BUTTON IN THE RIGHT SIDE, THAT DISPLAY OUR API GRAPHICALLY, WE WILL TEST OUR POST METHOD FIRST .:-
  8. AFTER HITTING TRY IT BUTTON WE WILL FILL THE REQUEST

    BODY WITH THE EXAMPLE BUTTON AND THEN WILL HIT THE POST BUTTON AS SEEN BELOW:- .
  9. AFTER WE HIT POST, WE CAN ABLE TO SEE THE

    RESPONSE DISPLAYED AS FOLLOWS:-
  10. SO, AFTER TESTING POST METHOD WE WILL BE DOING THE

    SAME FOR GET METHOD. AGAIN WE NEED TO HIT TRY IT BUTTON IN THE RIGHT SIDE, THAT DISPLAY OUR API GRAPHICALLY, WE WILL TEST OUR GET METHOD.:-
  11. AFTER WE HIT GET, WE CAN ABLE TO SEE THE

    RESPONSE DISPLAYED AS FOLLOWS:-
  12. SO WE CAN SEE THAT IF WE CREATE A RESOURCE

    TYPES TEMPLATE IN OUR RAML FILE, WHICH CONTAINS DESCRIPTION, METHODS ETC, THEN WE CAN EASILY USE THIS TEMPLATE FOR ANY OF OTHER RESOURCES WITHOUT WRITING A REPEATING CODE FOR METHODS OR DESCRIPTION. SO AT THE END I CAN ONLY SAY THAT, LET’S SPREAD OUR KNOWLEDGE AND EXPAND OUR MULE COMMUNITY. 