Đặc tả API
Quy định chung
- Các API được cung cấp sẽ sử dụng phương thức chung là REST API với kiểu dữ liệu mặc định là
json. Ngoài ra nếu đối tác muốn sử dụng kiểu dữ liệu khác thì có thẻ sử Header khác.- Ví dụ:
Content-Type: application/xml
- Ví dụ:
Thông tin
Các đặc tả được viết sẽ sử dụng json
- Các API sẽ có các thông số như sau:
Endpoint,Header,Dữ liệu truyền lên,Dữ liệu trả về.
Mã HTTP (HTTP Status)
Đối với các yêu cầu thành công sẽ trả về
HTTP_Statuslà2XXvới chi tiết bảng mã sau đây:HTTP Status Tên Mô tả 200OKYêu cầu được thực hiện thành công. Dữ liệu trả về trong RespondBody201CREATEDYêu cầu tạo tài nguyên thành công. Thông tin được trả về trong RespondBody202ACCEPTEDYêu cầu được chấp thuận, tuy nhiên server chưa thực thi xong, dữ liệu về kết quả yêu cầu sẽ được trả về dưới dạng callback hoặc bằng một API khác Đối với các yêu cầu bị lỗi từ phía bên gọi (client) thì sẽ trả về
HTTP_Statuslà4XXHTTP Status Tên Mô tả 400Bad RequestLỗi dữ liệu truyền lên không đúng định dạng trong đặc tả hoặc bị trùng lặp, xem errorCodehoặcerrorMessageđể thông tin thêm401UnauthorizedKhông xác định được người dùng/client. Nguyên nhân do thiếu Token hoặc token hết hạn. Hoặc MERCHANT_CODEvàMERCHANT_SECRETkhông khớp403ForbiddenNgười dùng/client không có quyền truy cập tài nguyên này. Hoặc Merchant bị ban do gọi sai xác thực quá nhiều lần. 404Not FoundTài nguyên/endpoint này không tồn tại. 413Entity Too LargeDữ liệu truyền lên quá lớn. 415Unsupported Media TypeKhông hỗ trợ kiểu định đạng dữ liệu này. Đối với các lỗi từ phía server,
HTTP Statuslà5XX. Đối với các lỗi này, yêu cầu đối tác liên hệ lại với support kỹ thuật để khắc phục
Dữ liệu trả về
- Thông thường với mã lỗi thành công
2XXdữ liệu sẽ được trả về theo đúng định dạng trong từ đặc tả của API. VD:{
"bearerToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.u9aiDQrGQ12HQZFb-oOyP5dbSmfnMC9bsPnU7GywhaQ",
"expire": 1634281710
}
Đối với yêu cầu lỗi, dữ liệu trả về sẽ có định dạng:
Tên trường Mô tả Kiểu dữ liệu errorCode Mã code với những yêu cầu mà client không thể kiểm tra trước khi gửi yêu cầu được. VD: trùng số CMT, email.... Number errorMessage Thông tin diễn giải mã lỗi, thường dành cho dev để kiểm chứng trước khi gửi yêu cầu Text