Weixin DevTools provides command line API and HTTP API for external calls. Developers can instruct the DevTools to perform operations, such as login, preview and upload, by using command lines or sending HTTP requests.
# HTTP
The HTTP service is automatically enabled when the DevTools is launched, with its port number recorded in the user directory. You can check whether the DevTools is installed or launched by checking whether the port file exists in the user directory and connecting to the server.
Location of the port file:
macOS: ~/Library/Application Support/微信开发者工具/Default/.ide
Windows: ~/AppData/Local/微信开发者工具/User Data/Default/.ide
# 1. Open DevTools or Specified Project
API definition:
URL: /open
HTTP method: GET
URL Parameter | Required | Description |
---|---|---|
projectpath | No | Opens the project in the specified path. If the project is already opened, it will be refreshed automatically. If no project exists, an project is automatically created and opened. If this parameter is not specified, the DevTools window is displayed. |
Example:
# Open the DevTools
http://127.0.0.1:port number/open
# Open/Refresh the project
http://127.0.0.1:port number/open?projectpath=full path of the project
Note:
- The project path must contain "project.config.json" in the correct format, and "appid" and "projectname" fields are provided in the file.
- The project path must be URL-encoded.
# 2. Login
API definition:
URL: /login
HTTP method: GET
URL Parameter | Required | Description |
---|---|---|
format | No | Specifies the return format of the login QR code. Available values include image (default), base64, and terminal. The image format is png. |
qroutput | No | Specifies the file path to write the QR code data into the file. If specified, the QR code is written into the file under the specified path. Otherwise, the QR code is returned as the request response. |
resultoutput | No | Specifies the file path to output the login result |
Example:
# Log in and return the QR code in image format
http://127.0.0.1:port number/login
# Log in and get the QR code in base64 format
http://127.0.0.1:port number/login?format=base64
# Log in, get the QR code in base64 format, and write it into /Users/username/logincode.txt
http://127.0.0.1:port number/login?format=base64&qroutput=%2FUsers%2Fusername%2Flogincode.txt
# Log in and write the login result into /Users/username/loginresult.json
http://127.0.0.1:port number/login?resultoutput=%2FUsers%2Fusername%2Floginresult.json
# 3. Preview
API definition:
URL: /preview
HTTP method: GET
URL Parameter | Required | Description |
---|---|---|
projectpath | Yes | Previews the project in the specified path. If the project is already opened, it will be refreshed automatically. If no project exists, an project is automatically created and previewed. |
format | No | Specifies the return format of the login QR code. Available values include image (default), base64, and terminal. The image format is png. |
qroutput | No | Specifies the file path to write the QR code data into the file. If specified, the QR code is written into the file under the specified path. Otherwise, the QR code is returned as the request response. |
infooutput | No | If specified, the additional information about this preview, such as code package size and subpackage size, is output to the specified path in json format. |
compilecondition | No | Specifies custom compilation conditions in json string format. Two fields can be specified: pathName that indicates the opened page (homepage if left blank), and query that indicates the page parameter. |
Example:
# Preview the project under the path /Users/username/demo and return the QR code in image format
http://127.0.0.1:port number/preview?projectpath=%2FUsers%2Fusername%2Fdemo
# Preview the project under the path /Users/username/demo and return the QR code in base64 format
http://127.0.0.1:port number/preview?projectpath=%2FUsers%2Fusername%2Fdemo&format=base64
# Preview the project under the path /Users/username/demo , return the QR code in base64 format, and write it into /Users/username/logincode.txt
http://127.0.0.1:port number/preview?projectpath=%2FUsers%2Fusername%2Fdemo&format=base64&qroutput=%2FUsers%2Fusername%2Flogincode.txt
# Preview the project under the path /Users/username/demo , return the QR code in image format, and output the preview information to /Users/username/info.json
http://127.0.0.1:port number/preview?projectpath=%2FUsers%2Fusername%2Fdemo&infooutput=%2Users%2username%2info.json
# Preview the project under the path /Users/username/demo , and specify custom compilation conditions where the startup page is pages/index/index and the parameter is x=1&y=2
http://127.0.0.1:port number/preview?projectpath=%2FUsers%2Fusername%2Fdemo&compilecondition={"pathName":"pages/index/index","query":"a3=1"}
# 4. Upload
API definition:
URL: /upload
HTTP method: GET
URL Parameter | Required | Description |
---|---|---|
projectpath | Yes | Uploads the project in the specified path |
version | Yes | Version number |
desc | No | Release notes about this upload |
infooutput | No | If specified, the additional information about this upload, such as code package size and subpackage size, is output to the specified path in json format. |
Example:
# Upload the project under the path /Users/username/demo , and specify the version number of v1.0.0
http://127.0.0.1:port number/upload?projectpath=%2FUsers%2Fusername%2Fdemo&version=v1.0.0
# Upload the project under the path /Users/username/demo , specify the version number of v1.0.0, and provide release notes
http://127.0.0.1:port number/upload?projectpath=%2FUsers%2Fusername%2Fdemo&version=v1.0.0&desc=test
# Upload the project under the path /Users/username/demo , specify the version number of v1.0.0, and output the upload information to /Users/username/info.json
http://127.0.0.1:port number/upload?projectpath=%2FUsers%2Fusername%2Fdemo&version=v1.0.0&infooutput=%2Users%2username%2info.json
# 5. Build npm
API definition:
URL: /buildnpm
HTTP method: GET
URL Parameter | Required | Description |
---|---|---|
projectpath | Yes | Uploads the project in the specified path |
compiletype | No | Compilation type: miniprogram (default) or plugin |
Example:
# Build the project under the path /Users/username/demo
http://127.0.0.1:port number/buildnpm?projectpath=%2FUsers%2Fusername%2Fdemo&compiletype=miniprogram
# 6. Auto Testing
API definition:
URL: /test
HTTP method: GET
URL Parameter | Required | Description |
---|---|---|
projectpath | Yes | Tests the project in the specified path |
Example:
# Submit the project under the path /Users/username/demo for testing
http://127.0.0.1:port number/test?projectpath=%2FUsers%2Fusername%2Fdemo
# Request Response
The HTTP status code is 200 under normal circumstances, and 400 when an error occurs, in which case a JSON string in the following format is returned:
{
"code": 40000,
"error": "Reason"
}
# 7. Auto Preview
API definition:
URL: /autopreview
HTTP method: GET
URL Parameter | Required | Description |
---|---|---|
projectpath | Yes | Specifies the project in the path. If the project is already opened, it will be refreshed automatically. If no project exists, an project is automatically created and previewed. |
infooutput | No | If specified, the additional information about this auto preview, such as code package size and subpackage size, is output to the specified path in json format. |
Example:
# Auto preview the project under the path /Users/username/demo , return the QR code in image format, and output the preview information to /Users/username/info.json
http://127.0.0.1:port number/autopreview?projectpath=%2FUsers%2Fusername%2Fdemo&infooutput=%2Users%2username%2info.json
# 8. Close the Window of the Current Project
API definition:
URL: /close
HTTP method: GET
URL Parameter | Required | Description |
---|---|---|
projectpath | Yes | Specifies the project in the path |
Example
http://127.0.0.1:port number/close?projectpath=%2FUsers%2Fusername%2Fdemo
Note: When closing the project, a pop-up window will appear, prompting whether to block it. If not, the project will be closed in 3 seconds.
# 9. Quit the Weixin DevTools
API definition:
URL: /quit
HTTP method: GET
Example
http://127.0.0.1:port number/quit
Note: When quitting the Weixin DevTools, a pop-up window will appear, prompting whether to block it. If not, the DevTools will be closed in 3 seconds.