Extensions in RAML | Extensions in Mule 4
extensions in RAML is widely used concept in RAML 1.0 in Mule 4. In the example below we will see how we can implement extensions in our RAML.
extensions is used to extend or override behavioural aspects of the API. As you may infer from the name, extensions are used to extend an API by adding new behaviours and/or modifying existing behaviours of an API. Here we are fetching the employees list by name which is done by adding /{name} as nested resource in our /employee resource.
Here is the extensions.raml.
#%RAML 1.0 Extension
title: Person list on the basis of name
extends: employeeDetails.raml
/employee:
/{name}:
get:
description: for getting data of specific employee
responses:
200:
body:
application/json:
example: !include examples/searchRes
#%RAML 1.0
title: dbcrud
version: v1
mediaType:
- application/json
protocols: [HTTP,HTTPS]
documentation:
- title: User Details
content: !include documentation/documentation.raml
types:
insertReqSchema: !include schemas/insertReqSchema.json
updateReqSchema: !include schemas/updateReqSchema.json
annotationTypes:
department: string
uses:
files: Library/library.raml
securitySchemes:
basicAuth:
description: It is used for authenticating uses by username & password
type: Basic Authentication
describedBy:
headers:
client_id: string
client_secret: string
/employee:
get:
(department): IT
is: [files.client-id-required,files.client-secret-required,files.errors]
queryParameters:
id:
description: for fetching employee on the basis of id
required: false
minimum: 1
maximum: 100
type: integer
example:
2
responses:
200:
body:
application/json:
example: !include examples/searchRes
post:
is: [files.client-id-required,files.client-secret-required,files.errors]
description: for posting employees data
body:
application/json:
example: !include examples/insertReq
description: Request body for inserting the data
type: !include schemas/insertReqSchema.json
responses:
201:
body:
application/json:
example: !include /examples/insertRes
put:
securedBy:
- basicAuth
is: [files.client-id-required,files.client-secret-required,files.errors]
description: for updating employees data
body:
application/json:
example: !include examples/updateReq
description: Request body for updating the data
type: !include schemas/updateReqSchema.json
responses:
204:
body:
application/json:
example: !include /examples/updateRes
delete:
securedBy:
- basicAuth
is: [files.client-id-required,files.client-secret-required,files.errors]
description: for deleting employees data
responses:
202:
body:
application/json:
example: !include /examples/deleteRes
/{id} :
get:
is: [files.client-id-required,files.client-secret-required, files.errors]
description: for getting data of specific employee
displayName : /employee/id
responses:
200:
body:
application/json:
example: !include examples/searchIdRes
delete:
is: [files.client-id-required,files.client-secret-required, files.errors]
description: for deleting data of specific employee
displayName : /employee/id
responses:
200:
body:
application/json:
example: !include examples/deleteIdRes
No comments:
Post a Comment