You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by ju...@apache.org on 2020/06/05 10:03:08 UTC
[incubator-apisix-dashboard] branch next updated: feat: updated api
(#245)
This is an automated email from the ASF dual-hosted git repository.
juzhiyuan pushed a commit to branch next
in repository https://gitbox.apache.org/repos/asf/incubator-apisix-dashboard.git
The following commit(s) were added to refs/heads/next by this push:
new 212e817 feat: updated api (#245)
212e817 is described below
commit 212e8174413c646044feaa45336cc8d1b118854a
Author: 琚致远 <ju...@apache.org>
AuthorDate: Fri Jun 5 18:02:02 2020 +0800
feat: updated api (#245)
---
src/pages/Routes/Create.tsx | 4 +-
.../Routes/components/Step2/RequestRewriteView.tsx | 15 ++++---
src/pages/Routes/constants.ts | 2 +-
src/pages/Routes/service.ts | 6 +--
src/pages/Routes/transform.ts | 47 +++++++++-------------
src/pages/Routes/typing.d.ts | 3 +-
6 files changed, 38 insertions(+), 39 deletions(-)
diff --git a/src/pages/Routes/Create.tsx b/src/pages/Routes/Create.tsx
index 4240d53..424ed6e 100644
--- a/src/pages/Routes/Create.tsx
+++ b/src/pages/Routes/Create.tsx
@@ -55,7 +55,9 @@ const Create: React.FC = (props) => {
if ((props as any).route.name === 'edit') {
initRoute((props as any).match.params.rid);
}
+ }, []);
+ useEffect(() => {
if (step1Data.redirectURI !== '') {
setRedirect(true);
setStepHeader(STEP_HEADER_2);
@@ -131,7 +133,7 @@ const Create: React.FC = (props) => {
if (nextStep === 2) {
if (redirect) {
createRoute({ data: routeData }).then(() => {
- return <ResultView onReset={onReset} />;
+ setStep(4);
});
return;
}
diff --git a/src/pages/Routes/components/Step2/RequestRewriteView.tsx b/src/pages/Routes/components/Step2/RequestRewriteView.tsx
index 3c622e2..e9556c3 100644
--- a/src/pages/Routes/components/Step2/RequestRewriteView.tsx
+++ b/src/pages/Routes/components/Step2/RequestRewriteView.tsx
@@ -1,6 +1,6 @@
import React from 'react';
import Form, { FormInstance } from 'antd/es/form';
-import Radio, { RadioChangeEvent } from 'antd/lib/radio';
+import Radio from 'antd/lib/radio';
import { Input, Row, Col, InputNumber, Button } from 'antd';
import { PlusOutlined, MinusCircleOutlined } from '@ant-design/icons';
@@ -14,9 +14,6 @@ interface Props extends RouteModule.Data {
const RequestRewriteView: React.FC<Props> = ({ data, form, disabled, onChange }) => {
const { step2Data } = data;
- const onProtocolChange = (e: RadioChangeEvent) => {
- onChange({ upstreamProtocol: e.target.value });
- };
const renderUpstreamMeta = () => (
<Form.List name="upstreamHostList">
@@ -101,10 +98,16 @@ const RequestRewriteView: React.FC<Props> = ({ data, form, disabled, onChange })
>
<Form.Item
label="协议"
- name="upstreamProtocol"
+ name="upstream_protocol"
rules={[{ required: true, message: '请勾选协议' }]}
>
- <Radio.Group onChange={onProtocolChange} name="upstreamProtocol" disabled={disabled}>
+ <Radio.Group
+ onChange={(e) => {
+ onChange({ upstream_protocol: e.target.value });
+ }}
+ name="upstream_protocol"
+ disabled={disabled}
+ >
<Radio value="keep">保持原样</Radio>
<Radio value="http">HTTP</Radio>
<Radio value="https">HTTPS</Radio>
diff --git a/src/pages/Routes/constants.ts b/src/pages/Routes/constants.ts
index 8d8d550..45f3af2 100644
--- a/src/pages/Routes/constants.ts
+++ b/src/pages/Routes/constants.ts
@@ -39,7 +39,7 @@ export const DEFAULT_STEP_1_DATA: RouteModule.Step1Data = {
};
export const DEFAULT_STEP_2_DATA: RouteModule.Step2Data = {
- upstreamProtocol: 'keep',
+ upstream_protocol: 'keep',
upstreamHostList: [{} as RouteModule.UpstreamHost],
upstreamHeaderList: [],
upstreamPath: undefined,
diff --git a/src/pages/Routes/service.ts b/src/pages/Routes/service.ts
index 247f45b..a7e5b5c 100644
--- a/src/pages/Routes/service.ts
+++ b/src/pages/Routes/service.ts
@@ -8,15 +8,15 @@ export const createRoute = (data: Pick<RouteModule.Data, 'data'>) =>
data: transformStepData(data),
});
-export const updateRoute = (rid: number, data: Pick<RouteModule.Data, 'data'>, wid: number = 0) =>
+export const updateRoute = (rid: number, data: Pick<RouteModule.Data, 'data'>, wid = 0) =>
request(`/workspaces/${wid}/routes/${rid}`, {
method: 'PUT',
data: transformStepData(data),
});
-export const fetchRoute = (rid: number, wid: number = 0) =>
+export const fetchRoute = (rid: number, wid = 0) =>
request(`/workspaces/${wid}/routes/${rid}`).then((data) => transformRouteData(data));
-export const fetchRouteList = (wid = 0) => request(`/workspaces/${wid}/routes`);
+export const fetchRouteList = (wid = 0) => request(`/workspaces/${wid}/routes?page=1&size=100000`);
export const removeRoute = (rid: number, wid = 0) => request(`/workspaces/${wid}/routes/${rid}`);
diff --git a/src/pages/Routes/transform.ts b/src/pages/Routes/transform.ts
index a29965b..008e41e 100644
--- a/src/pages/Routes/transform.ts
+++ b/src/pages/Routes/transform.ts
@@ -16,9 +16,7 @@ export const transformStepData = ({
let redirect: RouteModule.Redirect = {};
if (step1Data.forceHttps) {
redirect = { redirect_to_https: true };
- }
-
- if (step1Data.redirectURI !== '') {
+ } else if (step1Data.redirectURI !== '') {
redirect = {
code: step1Data.redirectCode,
uri: step1Data.redirectURI,
@@ -67,29 +65,24 @@ export const transformStepData = ({
};
}
- const transformData = omit(data, [
- 'advancedMatchingRules',
- 'upstreamProtocol',
- 'upstreamHostList',
- 'upstreamPath',
- 'upstreamHeaderList',
- 'websocket',
- 'timeout',
- 'redirectURI',
- 'redirectCode',
- 'forceHttps',
- ]);
-
- if (step1Data.redirectURI !== '') {
- return pick(transformData, [
- 'protocols',
- 'hosts',
- 'uris',
- 'methods',
+ // 未启用 redirect
+ if (!redirect.uri && !redirect.redirect_to_https) {
+ // 移除前端部分自定义变量
+ return omit(data, [
'redirect',
- ]) as RouteModule.Body;
+ 'advancedMatchingRules',
+ 'upstreamHostList',
+ 'upstreamPath',
+ 'upstreamHeaderList',
+ 'websocket',
+ 'timeout',
+ 'redirectURI',
+ 'redirectCode',
+ 'forceHttps',
+ ]);
}
- return transformData;
+
+ return pick(data, ['name', 'desc', 'protocols', 'hosts', 'uris', 'methods', 'redirect', 'vars']);
};
const transformVarsToRules = (
@@ -130,12 +123,12 @@ export const transformRouteData = (data: RouteModule.Body) => {
forceHttps: Boolean(redirect.redirect_to_https),
};
- if (redirect.code) {
+ if (redirect.uri) {
step1Data.redirectCode = redirect.code;
step1Data.redirectURI = redirect.uri;
}
- const { upstream, upstream_path, upstream_header } = data;
+ const { upstream, upstream_path, upstream_header, upstream_protocol } = data;
const upstreamHeaderList = Object.entries(upstream_header).map(([k, v]) => {
return {
@@ -147,7 +140,7 @@ export const transformRouteData = (data: RouteModule.Body) => {
});
const step2Data: RouteModule.Step2Data = {
- upstreamProtocol: 'keep',
+ upstream_protocol,
upstreamHeaderList,
upstreamHostList: transformUpstreamNodes(upstream.nodes),
upstreamPath: upstream_path.to,
diff --git a/src/pages/Routes/typing.d.ts b/src/pages/Routes/typing.d.ts
index 9d28d4b..a19273b 100644
--- a/src/pages/Routes/typing.d.ts
+++ b/src/pages/Routes/typing.d.ts
@@ -66,7 +66,7 @@ declare namespace RouteModule {
}
type Step2Data = {
- upstreamProtocol: 'http' | 'https' | 'keep';
+ upstream_protocol: 'http' | 'https' | 'keep';
upstreamHostList: UpstreamHost[];
upstreamPath: string | undefined;
upstreamHeaderList: UpstreamHeader[];
@@ -112,6 +112,7 @@ declare namespace RouteModule {
from?: string;
to: string;
};
+ upstream_protocol: 'keep' | 'http' | 'https';
upstream_header: {
[key: string]: string;
};