blob: a82ddeca259b4f205918da2fbd8a37344416ac8a [file] [log] [blame] [view]
---
title: API Specification
sidebar_position: 4
---
> When Contributor contributes new RESTful interfaces to Linkis, it is required to follow the following interface specifications for interface development.
## 1. HTTP or WebSocket ?
Linkis currently provides two interfaces: HTTP and WebSocket.
WebSocket advantages over HTTP:
- Less stress on the server
- More timely information push
- Interactivity is more friendly
Correspondingly, WebSocket has the following disadvantages:
- The WebSocket may be disconnected while using
- Higher technical requirements on the front end
- It is generally required to have a front-end degradation handling mechanism
**We generally strongly recommend that Contributor provide the interface using WebSocket as little as possible if not necessary;**
**If you think it is necessary to use WebSocket and are willing to contribute the developed functions to Linkis, we suggest you communicate with us before the development, thank you!**
## 2. URL specification
```
/api/rest_j/v1/{applicationName}/.+
/api/rest_s/v1/{applicationName}/.+
```
**Convention** :
- rest_j indicates that the interface complies with the Jersey specification
- REST_S indicates that the interface complies with the SpringMVC REST specification
- v1 is the version number of the service. ** version number will be updated with the Linkis version **
- {applicationName} is the name of the micro-service
## 3. Interface request format
```json
{
"method":"/api/rest_j/v1/entrance/execute",
"data":{},
"WebsocketTag" : "37 fcbd8b762d465a0c870684a0261c6e" / / WebSocket requests require this parameter, HTTP requests can ignore
}
```
**Convention** :
- method: The requested RESTful API URL.
- data: The specific data requested.
- WebSocketTag: The unique identity of a WebSocket request. This parameter is also returned by the back end for the front end to identify.
## 4. Interface response format
```json
{" method ":"/API/rest_j/v1 / project/create ", "status" : 0, "message" : "creating success!" ,"data":{}}
```
**Convention** :
- method: Returns the requested RESTful API URL, mainly for the WebSocket mode.
- status: Returns status information, where: -1 means not login, 0 means success, 1 means error, 2 means failed validation, and 3 means no access to the interface.
- data: Returns the specific data.
- message: Returns a prompt message for the request. If status is not 0, message will return an error message, where data may have a stack trace field, and return the specific stack information.
In addition: Different status cause different HTTP status code, under normal circumstances:
- When status is 0, the HTTP status code is 200
- When the status is -1, the HTTP status code is 401
- When status is 1, the HTTP status code is 400
- When status is 2, the HTTP status code is 412
- When status is 3, the HTTP status code is 403