Nav

Lab 1: Import the RAML Definition into Studio

Overview

In this lab, we will create the skeleton implementation of our Customer API that will process requests to Salesforce. You will use Anypoint Studio to create a Mule application where there will be one flow for each method of each resource (i.e. GET customers). Additionally you will use APIKit (as part of your Mule application) to process REST requests, transform them to messages to be handled and processed by each flow. module3_lab1_intro

The implementation will consist of a few steps:

Step 1: Create a new Mule Project and import RAML Definition

We are going to use our API definition to create an implementation of our Customer API. To do this we need to import the RAML Specification from the Design Center

  1. If it’s not already opened, start Anypoint Studio from the desktop icon and select the same workspace you’ve been working (example: C:\workspaces\myworkspace).

  2. From Anypoint Studio’s menu, select File > New > Mule Project to create a New Mule project. A Window will pop-up to define the details of this new application.

  3. Give the project the name api-customer

  4. Select the Mule Server 4.1.1 EE.

  5. Under API Implementation settings, check Specify API definition file location or URL and choose Design Center…​ by clicking in the (…) button on the right of the Location textbox.

    module3 lab1 new mule api project
  6. Once you clicked there, it should take you to the Browse Design Center for APIs window, if it asks you to login, use your Anypoint Platform account.

  7. This is the same thing you did in the last module. You will see a list with all the APIs definitions that were created. Select Customer API and press OK

    module3 lab1 vcs choose project
    If you don’t see the Customer API, press Load more projects. This link only appears when there are too many projects on the API Designer.
  8. Once you see the Customer API version referenced in the New Mule Project dialog, Press Finish. This will create a skeleton project that implements your API.

    module3 lab1 new mule api project finish
  9. APIkit creates your new Anypoint Studio project with a generated implementation based on your API specification. The generated configuration implements the inbound HTTP listener, as well as, all the resources, request/response data type metadata, among other things.

    module3 lab1 new api full

Step 2: Run the API

  1. Let’s explore the application that was just created. (we will skip the HTTP configuration since it was covered in the previous lab. The flows that were created represent the different operations available on the Customer API)

  2. To test the API, let’s run it within Studio. Right click on the application in the Package Explorer view.

  3. Select Run As​ > Mule Application​. (Feel free to skip this if you’ve done this in the previous lab)

    module3 lab1 run mule app
  4. Every time we start the application, we need to make sure that it is started successfully. Check in the Console tab that the project appears as "DEPLOYED".

    module3 lab1 deployed
  5. Once the application is deployed, Anypoint Studio will open a tab with the APIkit Consoles where we can test the application (to access the console, just click the link to open the Customer API Console in a browser)

    module3 lab1 api console
    module3 lab1 api console browser
  6. Click the POST tab and test the customer creation by first clicking the TRY IT button

    module3 lab1 api console tryit
  7. Select the Body tab, you’ll see the request body, then click the SEND Button.

    module3 lab1 api console send
  8. You should receive the sample response defined in the API specification.

  9. Go to the console tab and press the red button to stop the Mule runtime server.

    module3 lab1 studio stop mule

Summary

In this lab, we

  • Import the RAML Definition directly into Anypoint Studio

  • Auto-generated a skeleton project to implement the API

  • Run the skeleton project and tested it via the API Console

Go Further:

  • See the link APIkit doc for more information.

Congratulations! You have completed Lab 1.

Please proceed to Lab 2