Stub for WebAPI
Révision | df8acbacbd1763bfe4933ecf70720d818fb1b90c (tree) |
---|---|
l'heure | 2021-09-19 08:40:46 |
Auteur | NanaH |
Commiter | NanaH |
サンプルURLが環境依存だったのを修正、固定ファイル(HTML/jsなど)のファイル内にも置き換え文字が適用されるように変更。
@@ -18,13 +18,13 @@ | ||
18 | 18 | </tr> |
19 | 19 | <tr> |
20 | 20 | <td>なし</td> |
21 | - <td id="url1">http://localhost:8086/example/sports/baseball/team</td> | |
21 | + <td id="url1">${#DOMAIN#}/example/sports/baseball/team</td> | |
22 | 22 | <td><pre id="json1"></pre></td> |
23 | 23 | <td><input type="submit" value="取得" onClick="get_data(1)"></input></td> |
24 | 24 | </tr> |
25 | 25 | <tr> |
26 | 26 | <td>チームID指定</td> |
27 | - <td id="url2">http://localhost:8086/example/sports/baseball/team</td> | |
27 | + <td id="url2">${#DOMAIN#}/example/sports/baseball/team</td> | |
28 | 28 | <td><pre id="json2"> |
29 | 29 | { |
30 | 30 | "tid": ["NPB10"] |
@@ -33,7 +33,7 @@ | ||
33 | 33 | </tr> |
34 | 34 | <tr> |
35 | 35 | <td>パリーグ(の先頭)</td> |
36 | - <td id="url3">http://localhost:8086/example/sports/baseball/team?league=パ・リーグ</td> | |
36 | + <td id="url3">${#DOMAIN#}/example/sports/baseball/team?league=パ・リーグ</td> | |
37 | 37 | <td><pre id="json3"></pre></td> |
38 | 38 | <td><input type="submit" value="取得" onClick="get_data(3)"></input></td> |
39 | 39 | </tr> |
@@ -18,27 +18,27 @@ | ||
18 | 18 | </tr> |
19 | 19 | <tr> |
20 | 20 | <td>なし</td> |
21 | - <td id="url1">http://localhost:8086/example/sports/baseball/teamlist</td> | |
21 | + <td id="url1">${#DOMAIN#}/example/sports/baseball/teamlist</td> | |
22 | 22 | <td><input type="submit" value="取得" onClick="get_data(1)"></input></td> |
23 | 23 | </tr> |
24 | 24 | <tr> |
25 | 25 | <td>リーグ</td> |
26 | - <td id="url2">http://localhost:8086/example/sports/baseball/teamlist?league=セ・リーグ</td> | |
26 | + <td id="url2">${#DOMAIN#}/example/sports/baseball/teamlist?league=セ・リーグ</td> | |
27 | 27 | <td><input type="submit" value="取得" onClick="get_data(2)"></input></td> |
28 | 28 | </tr> |
29 | 29 | <tr> |
30 | 30 | <td>チームID</td> |
31 | - <td id="url3">http://localhost:8086/example/sports/baseball/teamlist?tid=NPB04&tid=NPB05&tid=NPB10</td> | |
31 | + <td id="url3">${#DOMAIN#}/example/sports/baseball/teamlist?tid=NPB04&tid=NPB05&tid=NPB10</td> | |
32 | 32 | <td><input type="submit" value="取得" onClick="get_data(3)"></input></td> |
33 | 33 | </tr> |
34 | 34 | <tr> |
35 | 35 | <td>リーグ+チームID指定</td> |
36 | - <td id="url4">http://localhost:8086/example/sports/baseball/teamlist?league=パ・リーグ&tid=NPB04&tid=NPB05&tid=NPB10</td> | |
36 | + <td id="url4">${#DOMAIN#}/example/sports/baseball/teamlist?league=パ・リーグ&tid=NPB04&tid=NPB05&tid=NPB10</td> | |
37 | 37 | <td><input type="submit" value="取得" onClick="get_data(4)"></input></td> |
38 | 38 | </tr> |
39 | 39 | <tr> |
40 | 40 | <td>チームID(範囲)</td> |
41 | - <td id="url5">http://localhost:8086/example/sports/baseball/teamlist?tid_min=NPB04&tid_max=NPB09</td> | |
41 | + <td id="url5">${#DOMAIN#}/example/sports/baseball/teamlist?tid_min=NPB04&tid_max=NPB09</td> | |
42 | 42 | <td><input type="submit" value="取得" onClick="get_data(5)"></input></td> |
43 | 43 | </tr> |
44 | 44 | </table> |
@@ -18,13 +18,13 @@ | ||
18 | 18 | </tr> |
19 | 19 | <tr> |
20 | 20 | <td>なし</td> |
21 | - <td id="url1">http://localhost:8086/example/sports/soccer/teamlist</td> | |
21 | + <td id="url1">${#DOMAIN#}/example/sports/soccer/teamlist</td> | |
22 | 22 | <td id="json1"></td> |
23 | 23 | <td><input type="submit" value="取得" onClick="get_data(1)"></input></td> |
24 | 24 | </tr> |
25 | 25 | <tr> |
26 | 26 | <td>リーグ=J1のみ</td> |
27 | - <td id="url2">http://localhost:8086/example/sports/soccer/teamlist</td> | |
27 | + <td id="url2">${#DOMAIN#}/example/sports/soccer/teamlist</td> | |
28 | 28 | <td><pre id="json2"> |
29 | 29 | { |
30 | 30 | "league": "J1" |
@@ -33,7 +33,7 @@ | ||
33 | 33 | </tr> |
34 | 34 | <tr> |
35 | 35 | <td>チームID指定</td> |
36 | - <td id="url3">http://localhost:8086/example/sports/soccer/teamlist</td> | |
36 | + <td id="url3">${#DOMAIN#}/example/sports/soccer/teamlist</td> | |
37 | 37 | <td><pre id="json3"> |
38 | 38 | { |
39 | 39 | "tid": ["JL06","JL28","JL29", "JL04","JL26"] |
@@ -42,7 +42,7 @@ | ||
42 | 42 | </tr> |
43 | 43 | <tr> |
44 | 44 | <td>J1かつチームID指定</td> |
45 | - <td id="url4">http://localhost:8086/example/sports/soccer/teamlist</td> | |
45 | + <td id="url4">${#DOMAIN#}/example/sports/soccer/teamlist</td> | |
46 | 46 | <td><pre id="json4"> |
47 | 47 | { |
48 | 48 | "league": "J1", |
@@ -52,7 +52,7 @@ | ||
52 | 52 | </tr> |
53 | 53 | <tr> |
54 | 54 | <td>範囲指定</td> |
55 | - <td id="url5">http://localhost:8086/example/sports/soccer/teamlist</td> | |
55 | + <td id="url5">${#DOMAIN#}/example/sports/soccer/teamlist</td> | |
56 | 56 | <td><pre id="json5"> |
57 | 57 | { |
58 | 58 | "tid": { |
@@ -64,7 +64,7 @@ | ||
64 | 64 | </tr> |
65 | 65 | <tr> |
66 | 66 | <td>該当データなし</td> |
67 | - <td id="url6">http://localhost:8086/example/sports/soccer/teamlist</td> | |
67 | + <td id="url6">${#DOMAIN#}/example/sports/soccer/teamlist</td> | |
68 | 68 | <td><pre id="json6"> |
69 | 69 | { |
70 | 70 | "league": "J0" |
@@ -21,7 +21,7 @@ | ||
21 | 21 | </tr> |
22 | 22 | <tr> |
23 | 23 | <td>なし</td> |
24 | - <td id="url1">http://localhost:8086/example/sports/baseball/teamname</td> | |
24 | + <td id="url1">${#DOMAIN#}/example/sports/baseball/teamname</td> | |
25 | 25 | <td><pre id="json1"> |
26 | 26 | { |
27 | 27 | "league": "パ・リーグ", |
@@ -33,18 +33,19 @@ | ||
33 | 33 | <br/> |
34 | 34 | 対応している組み込み文字は以下。<br/> |
35 | 35 | <table style="font-size:10pt"> |
36 | -<tr><td>"${#SYSDATE#} </td><td>現在時刻</td></tr> | |
37 | -<tr><td>"${#SYS_YMDHMS#} </td><td>同上</td></tr> | |
38 | -<tr><td>"${#SYS_YMD#} </td><td>現在日</td></tr> | |
39 | -<tr><td>"${#SYS_HM#} </td><td>現在時刻</td></tr> | |
40 | -<tr><td>"${#SYS_YMD#} </td><td>同上(年月日のみ)</td></tr> | |
41 | -<tr><td>"${#SYS_MSEC#} </td><td>通算ミリ秒</td></tr> | |
42 | -<tr><td>"${#SYS_SEC#} </td><td>通算秒</td></tr> | |
43 | -<tr><td>"${#THREAD_ID#} </td><td>スレッドID</td></tr> | |
44 | -<tr><td>"${#THREAD_NAME#}" </td><td>スレッド名</td></tr> | |
45 | -<tr><td>"${#PATHx#}" </td><td>URLのパス0~N</td></tr> | |
46 | -<tr><td>"${#URL#}" </td><td>URL全体</td></tr> | |
47 | -<tr><td>"${#SESSION_ID#}" </td><td>セションID</td></tr> | |
36 | +<tr><td>"${#SYSDATE#}" </td><td>現在時刻</td> <td style="padding-left:50px;">${#SYSDATE#} </td></tr> | |
37 | +<tr><td>"${#SYS_YMDHMS#}" </td><td>同上</td> <td style="padding-left:50px;">${#SYS_YMDHMS#} </td></tr> | |
38 | +<tr><td>"${#SYS_YMD#}" </td><td>現在日</td> <td style="padding-left:50px;">${#SYS_YMD#} </td></tr> | |
39 | +<tr><td>"${#SYS_HM#}" </td><td>現在時刻</td> <td style="padding-left:50px;">${#SYS_HM#} </td></tr> | |
40 | +<tr><td>"${#SYS_YMD#}" </td><td>同上(年月日のみ)</td><td style="padding-left:50px;">${#SYS_YMD#} </td></tr> | |
41 | +<tr><td>"${#SYS_MSEC#}" </td><td>通算ミリ秒</td> <td style="padding-left:50px;">${#SYS_MSEC#} </td></tr> | |
42 | +<tr><td>"${#SYS_SEC#}" </td><td>通算秒</td> <td style="padding-left:50px;">${#SYS_SEC#} </td></tr> | |
43 | +<tr><td>"${#THREAD_ID#}" </td><td>スレッドID</td> <td style="padding-left:50px;">${#THREAD_ID#} </td></tr> | |
44 | +<tr><td>"${#THREAD_NAME#}" </td><td>スレッド名</td> <td style="padding-left:50px;">${#THREAD_NAME#} </td></tr> | |
45 | +<tr><td>"${#PATHx#}" </td><td>URLのパス0~N</td> <td style="padding-left:50px;">${#PATH0#}, ${#PATH1#}, ... </td></tr> | |
46 | +<tr><td>"${#URL#}" </td><td>URL全体</td> <td style="padding-left:50px;">${#URL#} </td></tr> | |
47 | +<tr><td>"${#DOMAIN#}" </td><td>URL先頭部分</td> <td style="padding-left:50px;">${#DOMAIN#} </td></tr> | |
48 | +<tr><td>"${#SESSION_ID#}" </td><td>セションID</td> <td style="padding-left:50px;">${#SESSION_ID#} </td></tr> | |
48 | 49 | </table> |
49 | 50 | <br/> |
50 | 51 | ◎応答データ(順不定)<br/> |
@@ -222,12 +222,15 @@ | ||
222 | 222 | return errormsg; |
223 | 223 | } |
224 | 224 | |
225 | + UsingInfo ui = UsingInfo.getInitInstance(pathList, req); | |
226 | + | |
225 | 227 | //静的リソースはここで読み込んで返す |
226 | 228 | String ext = BastubUtils.getExtText(req.getRequestURI()); |
227 | 229 | if (ext.length() > 0 && STATIC_RESOURCE_EXT.indexOf(ext) >= 0){ |
228 | 230 | File htmlFile = BastubUtils.getPagedataPath(pageDir, req.getRequestURI(), req.getMethod(), ""); |
229 | 231 | res.setContentType("text/html; charset=" +res.getCharacterEncoding()); |
230 | - return FileUtils.readFileToString(htmlFile, res.getCharacterEncoding()); | |
232 | + String text = FileUtils.readFileToString(htmlFile, res.getCharacterEncoding()); | |
233 | + return ui.replaceSring(text); | |
231 | 234 | } |
232 | 235 | |
233 | 236 | //パスを生成 |
@@ -297,8 +300,6 @@ | ||
297 | 300 | //================================= |
298 | 301 | // [5] 応答データを生成 |
299 | 302 | //================================= |
300 | - UsingInfo ui = UsingInfo.getInitInstance(pathList, req); | |
301 | - | |
302 | 303 | jsonService.setDataToJsonObject(null, jsonInfo.getJsonObject(), resultTarget, ui); |
303 | 304 | |
304 | 305 | //応答 |
@@ -61,13 +61,17 @@ | ||
61 | 61 | map.put("${#SYS_SEC#}", String.valueOf(System.currentTimeMillis()/1000)); |
62 | 62 | map.put("${#THREAD_ID#}", String.valueOf(Thread.currentThread().getId())); |
63 | 63 | map.put("${#THREAD_NAME#}", Thread.currentThread().getName()); |
64 | + map.put("${#SESSION_ID#}", req.getSession(true).getId()); | |
64 | 65 | |
65 | 66 | //"${#PATHx#}→パス値に変換 |
66 | 67 | for (int i=0; i<pathList.size(); i++){ |
67 | 68 | map.put("${#PATH" + i + "#}", pathList.get(i)); |
68 | 69 | } |
69 | - map.put("${#URL#}", req.getRequestURL().toString()); | |
70 | - map.put("${#SESSION_ID#}", (session != null) ? session.getId() : ""); | |
70 | + String url = req.getRequestURL().toString(); | |
71 | + map.put("${#URL#}", url); | |
72 | + map.put("${#URL_#}", req.getContextPath()); | |
73 | + map.put("${#DOMAIN#}", BastubUtils.getUrlDomain(url)); | |
74 | + | |
71 | 75 | |
72 | 76 | return ui; |
73 | 77 | } |
@@ -221,4 +225,13 @@ | ||
221 | 225 | return true; |
222 | 226 | } |
223 | 227 | |
228 | + public String replaceSring(String s){ | |
229 | + for (Map.Entry<String, String> ent : replaceConst.entrySet()) { | |
230 | + String key = ent.getKey(); | |
231 | + while (s.contains(key)){ | |
232 | + s = s.replace(key, ent.getValue()); | |
233 | + } | |
234 | + } | |
235 | + return s; | |
236 | + } | |
224 | 237 | } |
@@ -134,6 +134,23 @@ | ||
134 | 134 | } |
135 | 135 | } |
136 | 136 | |
137 | + /** | |
138 | + * URLのドメインまでを返す。 | |
139 | + * 例えば、http://www.foo.co.jp/aa/bb/ccならば、"http://www.foo.co.jp"を返す。 | |
140 | + * @param url URLパス | |
141 | + * @return ドメインまでの文字列。最後の/は返さない。 | |
142 | + */ | |
143 | + public static String getUrlDomain(String url){ | |
144 | + int n = url.lastIndexOf("//"); | |
145 | + if (n >= 0){ | |
146 | + int m = url.indexOf("/", n + 2); | |
147 | + if (m >= 0){ | |
148 | + return url.substring(0, m); | |
149 | + } | |
150 | + } | |
151 | + return url; | |
152 | + } | |
153 | + | |
137 | 154 | //=============================== |
138 | 155 | // POI関連 |
139 | 156 | //=============================== |
@@ -3,9 +3,11 @@ | ||
3 | 3 | server.port=8086 |
4 | 4 | |
5 | 5 | #\u5fdc\u7b54\u30c7\u30fc\u30bf\u306e\u5148\u982d\u30d5\u30a9\u30eb\u30c0 |
6 | -# classes\u304b\u3089\u306e\u76f8\u5bfe\u30d1\u30b9\u3001\u307e\u305f\u306f\u7d76\u5bfe\u30d1\u30b9\u3067\u6307\u5b9a\u3002 | |
7 | -# \u30d1\u30b9\u533a\u5207\u308a\u306f\u3001/\u307e\u305f\u306f\\\u306e\u3069\u3061\u3089\u3067\u3082\u53ef\u3002\\uff11\u6587\u5b57\u306f\u30c0\u30e1\u3002 | |
8 | -# \u76f8\u5bfe\u30d1\u30b9\u306e\u5834\u5408\u3001[project_home]/target/classes/ \u304b\u3089\u306e\u76f8\u5bfe\u3092\u8a18\u8ff0\u3059\u308b\u3053\u3068\u3002 | |
6 | +# \u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u5148\u982d(\u203b)\u304b\u3089\u306e\u76f8\u5bfe\u30d1\u30b9\u3001\u307e\u305f\u306f\u7d76\u5bfe\u30d1\u30b9\u3067\u6307\u5b9a\u3002 | |
7 | +# \u30d1\u30b9\u533a\u5207\u308a\u306f\u3001/\u307e\u305f\u306f\\\u306e\u3069\u3061\u3089\u3067\u3082\u53ef\u3002 | |
8 | +# \u3001 \u304b\u3089\u306e\u76f8\u5bfe\u3092\u8a18\u8ff0\u3059\u308b\u3053\u3068\u3002 | |
9 | +# \u203b\u76f8\u5bfe\u30d1\u30b9\u306f\u3001\u901a\u5e38\u306fclasses([project_home]/target/classes/)\u304b\u3089\u306e\u76f8\u5bfe\u3002 | |
10 | +# \u305f\u3060\u3057\u3001bastub.jar\u3067\u63d0\u4f9b\u3057\u3066\u3044\u308b\u5834\u5408\u306fclasses\u304b\u3089\u3067\u306f\u306a\u304fbastub.jar\u304b\u3089\u306e\u76f8\u5bfe\u306b\u306a\u308b\u3002 | |
9 | 11 | #(ex) |
10 | 12 | pagedata.root=../../pagedata |
11 | 13 | #pagedata.root=c:\\App\\Bastub |