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+
1251public 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+
3980public 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
100225headers = {'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