mirror of
https://gitee.com/iresty/apisix.git
synced 2024-12-02 12:07:35 +08:00
docs: update public API relative usage (#6318)
Co-authored-by: 琚致远 <juzhiyuan@apache.org>
This commit is contained in:
parent
1c6b47354a
commit
ecf08c6dd5
@ -118,23 +118,35 @@ Response is `Array` of [HttpResponse](#httpresponse).
|
||||
|
||||
## How to specify custom uri
|
||||
|
||||
We can change the default uri in the `plugin_attr` section of `conf/config.yaml`.
|
||||
We have the [public-api](public-api.md) plugin, customizing the uri becomes even easier. We just need to set the `uri` you want when creating the route and change the configuration of the `public-api` plugin.
|
||||
|
||||
| Name | Type | Requirement | Default | Description |
|
||||
| ---------- | ------ |-------------| ---------------------------- | --------------------------------- |
|
||||
| uri | string | optional | "/apisix/batch-requests" | uri to use with batch-requests plugin |
|
||||
|
||||
Here is an example:
|
||||
|
||||
```yaml
|
||||
plugin_attr:
|
||||
batch-requests:
|
||||
uri: "/api-gw/batch"
|
||||
```shell
|
||||
$ curl http://127.0.0.1:9080/apisix/admin/routes/br -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
|
||||
{
|
||||
"uri": "/batch-requests",
|
||||
"plugins": {
|
||||
"public-api": {
|
||||
"uri": "/apisix/batch-requests"
|
||||
}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
## Test Plugin
|
||||
|
||||
You can pass your request detail to batch API( `/apisix/batch-requests` ), `apisix` can automatically complete requests via [http pipeline](https://en.wikipedia.org/wiki/HTTP_pipelining). Such as:
|
||||
First you need to setup the route for the API that batch request, which will use the [public-api](public-api.md) plugin.
|
||||
|
||||
```shell
|
||||
$ curl http://127.0.0.1:9080/apisix/admin/routes/br -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
|
||||
{
|
||||
"uri": "/apisix/batch-requests",
|
||||
"plugins": {
|
||||
"public-api": {}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
Then, you can pass your request detail to batch API(`/apisix/batch-requests`), APISIX can automatically complete requests via [http pipeline](https://en.wikipedia.org/wiki/HTTP_pipelining). Such as:
|
||||
|
||||
```shell
|
||||
curl --location --request POST 'http://127.0.0.1:9080/apisix/batch-requests' \
|
||||
|
@ -196,6 +196,20 @@ then add jwt-auth plugin in the Consumer page:
|
||||
|
||||
#### Get the Token in `jwt-auth` Plugin:
|
||||
|
||||
First, you need to set up the route for the API that signs the token, which will use the [public-api](public-api.md) plugin.
|
||||
|
||||
```shell
|
||||
$ curl http://127.0.0.1:9080/apisix/admin/routes/jas -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
|
||||
{
|
||||
"uri": "/apisix/plugin/jwt/sign",
|
||||
"plugins": {
|
||||
"public-api": {}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
Let's get a token.
|
||||
|
||||
* without extension payload:
|
||||
|
||||
```shell
|
||||
|
@ -58,7 +58,17 @@ plugins: # plugin list
|
||||
......
|
||||
```
|
||||
|
||||
After starting `APISIX`, you can get status information through the API `/apisix/status`.
|
||||
2. Setup the route for the status API, which will use the [public-api](public-api.md) plugin.
|
||||
|
||||
```shell
|
||||
$ curl http://127.0.0.1:9080/apisix/admin/routes/ns -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
|
||||
{
|
||||
"uri": "/apisix/status",
|
||||
"plugins": {
|
||||
"public-api": {}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
## Test Plugin
|
||||
|
||||
@ -121,3 +131,9 @@ $ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f
|
||||
"plugins": {}
|
||||
}'
|
||||
```
|
||||
|
||||
3. You can also remove the route on `/apisix/status`, no one can access the API.
|
||||
|
||||
```sh
|
||||
$ curl http://127.0.0.1:9080/apisix/admin/routes/ns -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X DELETE
|
||||
```
|
||||
|
@ -110,6 +110,22 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f1
|
||||
|
||||
## Test Plugin
|
||||
|
||||
#### Setup routes for public API
|
||||
|
||||
Use the `public-api` plugin to expose the public API.
|
||||
|
||||
```shell
|
||||
$ curl http://127.0.0.1:9080/apisix/admin/routes/wal -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
|
||||
{
|
||||
"uri": "/apisix/plugin/wolf-rbac/login",
|
||||
"plugins": {
|
||||
"public-api": {}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
You also need to setup the `change_pwd` and `user_info` routes together.
|
||||
|
||||
#### Login and get `wolf-rbac` token:
|
||||
|
||||
The following `appid`, `username`, and `password` must be real ones in the wolf system.
|
||||
|
@ -122,23 +122,35 @@ curl http://127.0.0.1:9080/apisix/admin/plugin_metadata/batch-requests -H 'X-API
|
||||
|
||||
## 如何修改自定义 uri
|
||||
|
||||
我们可以在 `conf/config.yaml` 的 `plugin_attr` 配置项中修改默认的 `uri`
|
||||
我们可以使用 [public-api](../../../en/latest/plugins/public-api.md) 插件轻易的设置自定义 uri。只需要在创建路由时设置需要的 uri 并改变 `public-api` 插件的配置即可。
|
||||
|
||||
| 名称 | 类型 | 必选项 | 默认值 | 描述 |
|
||||
| --------- | ------ | ------ | ---------------------------- | -------------- |
|
||||
| uri | string | 可选 |"/apisix/batch-requests" | `batch-requests` 插件的自定义 uri |
|
||||
|
||||
配置示例:
|
||||
|
||||
```yaml
|
||||
plugin_attr:
|
||||
batch-requests:
|
||||
uri: "/api-gw/batch"
|
||||
```shell
|
||||
$ curl http://127.0.0.1:9080/apisix/admin/routes/br -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
|
||||
{
|
||||
"uri": "/batch-requests",
|
||||
"plugins": {
|
||||
"public-api": {
|
||||
"uri": "/apisix/batch-requests"
|
||||
}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
## 测试插件
|
||||
|
||||
你可以将要访问的请求信息传到网关的批量请求接口( `/apisix/batch-requests` ),网关会以 [http pipeline](https://en.wikipedia.org/wiki/HTTP_pipelining) 的方式自动帮你完成请求。
|
||||
首先,你需要为 batch request 的 API 设置一个路由,它将使用 [public-api](../../../en/latest/plugins/public-api.md) 插件。
|
||||
|
||||
```shell
|
||||
$ curl http://127.0.0.1:9080/apisix/admin/routes/br -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
|
||||
{
|
||||
"uri": "/apisix/batch-requests",
|
||||
"plugins": {
|
||||
"public-api": {}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
之后,你就可以将要访问的请求信息传到网关的批量请求接口( `/apisix/batch-requests` )了,网关会以 [http pipeline](https://en.wikipedia.org/wiki/HTTP_pipelining) 的方式自动帮你完成请求。
|
||||
|
||||
```shell
|
||||
curl --location --request POST 'http://127.0.0.1:9080/apisix/batch-requests' \
|
||||
|
@ -123,6 +123,20 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13
|
||||
|
||||
#### 首先进行登录获取 `jwt-auth` token:
|
||||
|
||||
首先,你需要为签发 token 的 API 设置一个路由,它将使用 [public-api](../../../en/latest/plugins/public-api.md) 插件。
|
||||
|
||||
```shell
|
||||
$ curl http://127.0.0.1:9080/apisix/admin/routes/jas -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
|
||||
{
|
||||
"uri": "/apisix/plugin/jwt/sign",
|
||||
"plugins": {
|
||||
"public-api": {}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
之后,我们就可以调用它获取 token 了。
|
||||
|
||||
* 没有额外的 payload:
|
||||
|
||||
```shell
|
||||
|
@ -56,7 +56,17 @@ plugins: # plugin list
|
||||
......
|
||||
```
|
||||
|
||||
启动 `APISIX` 之后,即可访问该插件提供的接口,获得基本的状态信息。
|
||||
2. 为状态 API 配置路由,它将使用 [public-api](../../../en/latest/plugins/public-api.md) 插件。
|
||||
|
||||
```shell
|
||||
$ curl http://127.0.0.1:9080/apisix/admin/routes/ns -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
|
||||
{
|
||||
"uri": "/apisix/status",
|
||||
"plugins": {
|
||||
"public-api": {}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
## 测试插件
|
||||
|
||||
|
@ -110,6 +110,22 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f1
|
||||
|
||||
## 测试插件
|
||||
|
||||
#### 为 API 设置路由
|
||||
|
||||
我们使用 [public-api](../../../en/latest/plugins/public-api.md) 插件来暴露这些 public API.
|
||||
|
||||
```shell
|
||||
$ curl http://127.0.0.1:9080/apisix/admin/routes/wal -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
|
||||
{
|
||||
"uri": "/apisix/plugin/wolf-rbac/login",
|
||||
"plugins": {
|
||||
"public-api": {}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
你也需要为 `change_pwd` 和 `user_info` 两个 API 配置路由。
|
||||
|
||||
#### 首先进行登录获取 `wolf-rbac` token:
|
||||
|
||||
下面的 `appid`, `username`, `password` 必须为 wolf 系统中真实存在的.
|
||||
|
Loading…
Reference in New Issue
Block a user