- Create a new account on Anypoint Platform
- Please ensure that the created account on Anypoint Platform should not have any other project(s).
- Install the Anypoint Studio on your system ( if you dont have it already)
- Have [Open SSL] (https://www.openssl.org/) installed on your system.
- Create a new workspace in Anypoint Studio
- Create an API specfication project in Anypoint Studio named jc-industry-eapi.
- The API specification should use resourceTypes.
- The API specification should use a trait named 'client-id-required' . This trait must be applied on all the end points.
- Design the RAML API specification to expose CRUD operation on User object and Customer object. The Object models (user.raml and customer.raml) are attached in this repo.
- Users
- GET /users
- POST /user
- PATCH /user/{id}
- DELETE /user/{id}
- Customers
- GET /customers
- POST /customer
- PATCH /customer/{id}
- DELETE /customer/{id}
- Publish the API specification to Design Centre from Anypoint Studio.
- Publish the API specification to Anypoint Exchange from Design Centre.
- Create a new mule project jc-mulesoft-industry-eapi by importing the API specification from Design centre into your workspace.
- Deploy the project jc-mulesoft-industry-eapi to Cloudhub.
- Manage the API jc-industry-eapi in API manager.
- Apply the client_id enforcement policy on the API jc-industry-eapi.
- Apply Rate limiting policy on the API (rate limit of three requests every six seconds)
- Access the exposed API via any REST client (Postman, curl etc)
- As Cloudhub will not allow you to implement 2-WAY TLS, lets try to implement 2-WAY TLS locally.
- Create self signed certificates via open ssl.
- Secure the API via 2-WAY TLS.