Lab 1: Import the RAML Definition into Studio


In this lab, we will create the skeleton implementation of our Product API that will process requests to a MySQL Database. 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 products). 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.

module8 lab1 overview

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

  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 product-api

  4. Select the Mule Server 4.3.0 EE.

  5. Under Import a published API we are going to import the RAML Spec from Exchange. Click on module2_lab1_plus_button and select from Exchange

    module8 lab1 new mule api project
  6. Once you clicked there, you will see a new window. If you don’t see any username. You need to login to the Anypoiint Platform. So click on the Add Account button. You will see a list with all the APIs

  7. Select Product API and press Add.

    module8 lab1 product api for database

    Be sure when you select the Product API. Validate that the Publisher has the name of the workshop business group.

  8. Press Finish

  9. Check everything is fine. Be sure that the Scaffold flows from these API Specifications is checked.

    module8 lab1 check create
  10. 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.

    module8 lab1 new project

Step2: Run the API

To check the API, let’s run it within Studio first.

  1. Right click api-products in the Package Explorer view. Select Run As > Mule Application.

    module8 lab1 run mule app
  2. 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".

    module8 lab1 console started
  3. 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 Product API Console in a browser)

    module8 lab1 api console

    Click the GET tab and test the get products method.

  4. In the Accept field complete with application/json in case is needed.

  5. Press the Send Button

    module8 lab1 api console send
  6. Scroll down the third panel and you will see the sample response defined in the API specification.

    module8 lab1 api console 200
  7. Go to the console tab and press the red button to stop the Mule runtime server.

    module8 lab1 studio stop mule

In the next lab we will update the flows to connect to the database.


In this module lab we created a skeleton API from a RAML stored in Exchange using Anypoint Studio project creation with APIKit. We ran and tested the API on the local Mule runtime which comes embedded in Anypoint Studio.

We saw how easy it is to generate a skeleton implementation project from the API design (RAML) stored in Exchange using APIKit with Anypoint Studio. Any other RAML can also be referenced as part of the project creation process, and it is also possible to import a RAML later and generate the interface on demand.

See the APIKIt documentation for more information.