Skip to content

Commit a6da224

Browse files
committed
Merge branch 'release-v4.12.0' into release-v4.13.0
2 parents 49940d4 + 8d5e144 commit a6da224

File tree

11 files changed

+546
-51
lines changed

11 files changed

+546
-51
lines changed

packages/api/src/core/api-client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export async function fetchApiServerToken() {
6565
debug: 'true',
6666
},
6767
})
68-
return result?.data?.access_token || ''
68+
return result?.data || {}
6969
}
7070

7171
export function fetchApisByClient(clientId: string) {

packages/business/src/views/data-server/Debug.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ const getAPIServerToken = async (
103103
104104
const reflshToken = () => {
105105
return getAPIServerToken((token: Record<string, any>) => {
106-
templates.value = getTemplate(props.host + form.value.path, token)
106+
templates.value = getTemplate({ urlList: props.urlList, token })
107107
})
108108
}
109109

packages/business/src/views/data-server/template.ts

Lines changed: 171 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,60 @@
1-
export default function (url, token) {
1+
interface UrlItem {
2+
method: string
3+
url: string
4+
last?: string
5+
canEdit?: boolean
6+
type?: string
7+
}
8+
9+
interface TemplateParams {
10+
urlList: UrlItem[]
11+
token: Record<string, any>
12+
}
13+
14+
export default function ({ urlList, token }: TemplateParams) {
15+
// Extract URLs from urlList
16+
const getUrl =
17+
urlList.find((item) => item.method === 'GET')?.url ||
18+
urlList.find((item) => item.type === 'DEFAULT_GET')?.url ||
19+
''
20+
const postUrlItem = urlList.find(
21+
(item) => item.method === 'POST' || item.type === 'DEFAULT_POST',
22+
)
23+
const postUrl = postUrlItem ? postUrlItem.url + (postUrlItem.last || '') : ''
24+
const tokenUrl = urlList.find((item) => item.method === 'TOKEN')?.url || ''
25+
const accessToken = token?.access_token || ''
26+
227
const javaTemplate = `public static void main(String[] args) {
3-
String url = "{{url}}";
4-
String access_token = "{{access_token}}";
28+
// Token URL (OAuth2)
29+
String tokenUrl = "${tokenUrl}";
30+
31+
// GET request URL
32+
String getUrl = "${getUrl}";
33+
34+
// POST request URL
35+
String postUrl = "${postUrl}";
36+
37+
// Access token (obtained from token endpoint)
38+
String access_token = "${accessToken}";
39+
540
String param = "";
6-
String result1 = doGet(url, access_token, param);
41+
42+
// GET request example
43+
String result1 = doGet(getUrl, access_token, param);
744
System.out.println(result1);
8-
String result2 = doPost(url+"/find", access_token, param);
45+
46+
// POST request example
47+
String result2 = doPost(postUrl, access_token, param);
948
System.out.println(result2);
1049
}
11-
50+
1251
public static String doGet(String url, String access_token, String param) {
1352
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
1453
StringBuilder urlBuilder = new StringBuilder(url);
1554
urlBuilder.append("?access_token=").append(access_token);
16-
urlBuilder.append("&filter=").append(URLEncoder.encode(param, StandardCharsets.UTF_8.name()));
55+
if (param != null && !param.isEmpty()) {
56+
urlBuilder.append("&filter=").append(URLEncoder.encode(param, StandardCharsets.UTF_8.name()));
57+
}
1758
HttpGet httpGet = new HttpGet(urlBuilder.toString());
1859
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(5000)
1960
.setConnectionRequestTimeout(5000)
@@ -35,7 +76,7 @@ public static String doGet(String url, String access_token, String param) {
3576
throw new RuntimeException(e);
3677
}
3778
}
38-
79+
3980
public static String doPost(String url, String access_token, String reqBody) {
4081
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
4182
StringBuilder urlBuilder = new StringBuilder(url);
@@ -48,7 +89,6 @@ public static String doPost(String url, String access_token, String reqBody) {
4889
httpPost.setConfig(requestConfig);
4990
httpPost.setEntity(new StringEntity(reqBody, Charset.defaultCharset()));
5091
51-
5292
CloseableHttpResponse response = httpClient.execute(httpPost);
5393
StatusLine statusLine = response.getStatusLine();
5494
HttpEntity entity = response.getEntity();
@@ -60,51 +100,142 @@ public static String doPost(String url, String access_token, String reqBody) {
60100
} catch (IOException e) {
61101
throw new RuntimeException(e);
62102
}
103+
}
104+
105+
// Get access token from OAuth2 token endpoint
106+
public static String getAccessToken(String tokenUrl, String clientId, String clientSecret) {
107+
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
108+
HttpPost httpPost = new HttpPost(tokenUrl);
109+
httpPost.setHeader("content-type", "application/x-www-form-urlencoded");
110+
111+
List<NameValuePair> params = new ArrayList<>();
112+
params.add(new BasicNameValuePair("grant_type", "client_credentials"));
113+
params.add(new BasicNameValuePair("client_id", clientId));
114+
params.add(new BasicNameValuePair("client_secret", clientSecret));
115+
httpPost.setEntity(new UrlEncodedFormEntity(params));
116+
117+
CloseableHttpResponse response = httpClient.execute(httpPost);
118+
HttpEntity entity = response.getEntity();
119+
if (entity != null) {
120+
String result = EntityUtils.toString(entity, CharEncoding.UTF_8);
121+
// Parse JSON to get access_token
122+
// JSONObject json = new JSONObject(result);
123+
// return json.getString("access_token");
124+
return result;
125+
}
126+
throw new RuntimeException("Failed to get access token");
127+
} catch (IOException e) {
128+
throw new RuntimeException(e);
129+
}
63130
}`
64-
.replace('{{url}}', url)
65-
.replace('{{access_token}}', token)
131+
66132
const jsTemplate = `import fetch from 'node-fetch';
67-
async function get(url){
68-
const response = await fetch(url);
133+
134+
// Token URL (OAuth2)
135+
const tokenUrl = '${tokenUrl}';
136+
137+
// GET request URL
138+
const getUrl = '${getUrl}';
139+
140+
// POST request URL
141+
const postUrl = '${postUrl}';
142+
143+
// Current access token
144+
const access_token = '${accessToken}';
145+
146+
// Get access token from OAuth2 token endpoint
147+
async function getAccessToken(clientId, clientSecret) {
148+
const response = await fetch(tokenUrl, {
149+
method: 'POST',
150+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
151+
body: new URLSearchParams({
152+
grant_type: 'client_credentials',
153+
client_id: clientId,
154+
client_secret: clientSecret
155+
})
156+
});
157+
const data = await response.json();
158+
return data.access_token;
159+
}
160+
161+
// GET request
162+
async function get(url, token) {
163+
const response = await fetch(url + '?access_token=' + token);
69164
const data = await response.json();
70165
return data;
71166
}
72-
async function post(url,body){
73-
const response = await fetch(url,{
74-
method: 'post',
167+
168+
// POST request
169+
async function post(url, token, body) {
170+
const response = await fetch(url + '?access_token=' + token, {
171+
method: 'POST',
75172
body: JSON.stringify(body),
76-
headers: {'Content-Type': 'application/json'}
173+
headers: { 'Content-Type': 'application/json' }
77174
});
78175
const data = await response.json();
79176
return data;
80177
}
81-
const url = '{{url}}';
82-
const access_token = '{{access_token}}';
83-
get(url + '?access_token='+access_token).then(data=>{
84-
console.info(data)
85-
}).catch(err=>{
86-
console.error(err)
87-
})
88-
post(url + '/find?access_token='+access_token,{}).then(data=>{
89-
console.info(data)
90-
}).catch(err=>{
91-
console.error(err)
92-
})`
93-
.replace('{{url}}', url)
94-
.replace('{{access_token}}', token)
178+
179+
// Example: GET request
180+
get(getUrl, access_token).then(data => {
181+
console.info('GET result:', data);
182+
}).catch(err => {
183+
console.error('GET error:', err);
184+
});
185+
186+
// Example: POST request
187+
post(postUrl, access_token, { page: 1, limit: 20 }).then(data => {
188+
console.info('POST result:', data);
189+
}).catch(err => {
190+
console.error('POST error:', err);
191+
});
192+
193+
// Example: Get new token and make request
194+
// getAccessToken('your_client_id', 'your_client_secret').then(token => {
195+
// return get(getUrl, token);
196+
// }).then(data => {
197+
// console.info('Result with new token:', data);
198+
// });`
199+
95200
const pythonTemplate = `import requests
96201
97-
url = "{{url}}"
98-
access_token = "{{access_token}}";
99-
param = {} # for example: param={'page':1,'limit':20}
202+
# Token URL (OAuth2)
203+
token_url = "${tokenUrl}"
204+
205+
# GET request URL
206+
get_url = "${getUrl}"
207+
208+
# POST request URL
209+
post_url = "${postUrl}"
210+
211+
# Current access token
212+
access_token = "${accessToken}"
213+
214+
# Get access token from OAuth2 token endpoint
215+
def get_access_token(client_id, client_secret):
216+
response = requests.post(token_url, data={
217+
'grant_type': 'client_credentials',
218+
'client_id': client_id,
219+
'client_secret': client_secret
220+
})
221+
return response.json().get('access_token')
222+
223+
# GET request example
224+
params = {'page': 1, 'limit': 20} # Optional query parameters
100225
headers = {'access_token': access_token}
226+
result1 = requests.get(get_url, params=params, headers=headers)
227+
print('GET result:', result1.text)
228+
229+
# POST request example
230+
body = {'page': 1, 'limit': 20}
231+
result2 = requests.post(post_url + '?access_token=' + access_token, json=body)
232+
print('POST result:', result2.text)
233+
234+
# Example: Get new token and make request
235+
# new_token = get_access_token('your_client_id', 'your_client_secret')
236+
# result = requests.get(get_url, headers={'access_token': new_token})
237+
# print('Result with new token:', result.text)`
101238

102-
result1 = requests.get(url, params=param, headers=headers)
103-
print(result1.text)
104-
result2 = requests.post(url + "/find", json=param, headers=headers)
105-
print(result2.text)`
106-
.replace('{{url}}', url)
107-
.replace('{{access_token}}', token)
108239
return {
109240
java: javaTemplate,
110241
javascript: jsTemplate,

0 commit comments

Comments
 (0)