Định nghĩa request body và response với RAML

1511

Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh

Đối với các request với HTTP method là POST, PUT, DELETE, thông thường chúng ta sẽ cần định nghĩa request body. Với RAML thì chúng ta sẽ định nghĩa cấu trúc của request body như thế nào và làm thế nào để định nghĩa response với RAML. Trong bài viết này, chúng ta hãy cùng nhau tìm hiểu các bạn nhé!

  Định nghĩa request URL với RAML
  10 Java Web Framework tốt nhất

Xem thêm tuyển dụng AngularJS lương cao trên TopDev

Giả sử mình định nghĩa một request để thêm mới thông tin sinh viên với nội dung ban đầu như sau:

#%RAML 1.0
baseUri: https://localhost:8081/api
title: Student Management System
version: 1.0

/students:
post:
description: Add new student

Để định nghĩa request body cho request này, chúng ta sẽ khai báo thêm section body với content-type, kiểu dữ liệu và có thể thêm example cho request body này nữa. Ví dụ như sau:

/students:
post:
description: Add new student
body:
application/json:
type: Student
example: { "id" : 5, "name" : "Khanh" }

Như các bạn thấy, mình đã định nghĩa content-type cho data trong request body trong ví dụ này của mình là application/json với kiểu dữ liệu là Student như sau:

types:
Student:
type: object
properties:
id:
required: true
type: integer
name:
required: true
type: string

Để định nghĩa response cho một request trong RAML, chúng ta sẽ sử dụng section responses. RAML cho phép chúng ta định nghĩa response cho từng HTTP  status code và với mỗi response, tương tự như request body, chúng ta cũng có thể định nghĩa response body. Ví dụ như sau:

/students:
post:
description: Add new student
body:
application/json:
type: Student
example: { "id" : 5, "name" : "Khanh" }
responses:
201:
body:
application/json:
type: String
example: "Created"

Như các bạn thấy, ngay sau khi khai báo section cho HTTP status code, chúng ta sẽ khai báo section body để khai báo nội dung của response body. Chúng ta cũng có thể khai báo content-type, kiểu dữ liệu, example tương tự như request body.

Bài viết gốc được đăng tải tại huongdanjava.com

Có thể bạn quan tâm:

Xem thêm tuyển dụng CNTT hấp dẫn trên TopDev