• R/O
  • SSH

Commit

Tags
Aucun tag

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Stub for WebAPI


Commit MetaInfo

Révisiondf8acbacbd1763bfe4933ecf70720d818fb1b90c (tree)
l'heure2021-09-19 08:40:46
AuteurNanaH
CommiterNanaH

Message de Log

サンプルURLが環境依存だったのを修正、固定ファイル(HTML/jsなど)のファイル内にも置き換え文字が適用されるように変更。

Change Summary

Modification

diff -r 988362910eb8 -r df8acbacbd17 pagedata/example/example1.html
--- a/pagedata/example/example1.html Sun Sep 19 08:37:55 2021 +0900
+++ b/pagedata/example/example1.html Sun Sep 19 08:40:46 2021 +0900
@@ -18,13 +18,13 @@
1818 </tr>
1919 <tr>
2020 <td>なし</td>
21- <td id="url1">http://localhost:8086/example/sports/baseball/team</td>
21+ <td id="url1">${#DOMAIN#}/example/sports/baseball/team</td>
2222 <td><pre id="json1"></pre></td>
2323 <td><input type="submit" value="取得" onClick="get_data(1)"></input></td>
2424 </tr>
2525 <tr>
2626 <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>
2828 <td><pre id="json2">
2929 {
3030 "tid": ["NPB10"]
@@ -33,7 +33,7 @@
3333 </tr>
3434 <tr>
3535 <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>
3737 <td><pre id="json3"></pre></td>
3838 <td><input type="submit" value="取得" onClick="get_data(3)"></input></td>
3939 </tr>
diff -r 988362910eb8 -r df8acbacbd17 pagedata/example/example2.html
--- a/pagedata/example/example2.html Sun Sep 19 08:37:55 2021 +0900
+++ b/pagedata/example/example2.html Sun Sep 19 08:40:46 2021 +0900
@@ -18,27 +18,27 @@
1818 </tr>
1919 <tr>
2020 <td>なし</td>
21- <td id="url1">http://localhost:8086/example/sports/baseball/teamlist</td>
21+ <td id="url1">${#DOMAIN#}/example/sports/baseball/teamlist</td>
2222 <td><input type="submit" value="取得" onClick="get_data(1)"></input></td>
2323 </tr>
2424 <tr>
2525 <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>
2727 <td><input type="submit" value="取得" onClick="get_data(2)"></input></td>
2828 </tr>
2929 <tr>
3030 <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>
3232 <td><input type="submit" value="取得" onClick="get_data(3)"></input></td>
3333 </tr>
3434 <tr>
3535 <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>
3737 <td><input type="submit" value="取得" onClick="get_data(4)"></input></td>
3838 </tr>
3939 <tr>
4040 <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>
4242 <td><input type="submit" value="取得" onClick="get_data(5)"></input></td>
4343 </tr>
4444 </table>
diff -r 988362910eb8 -r df8acbacbd17 pagedata/example/example3.html
--- a/pagedata/example/example3.html Sun Sep 19 08:37:55 2021 +0900
+++ b/pagedata/example/example3.html Sun Sep 19 08:40:46 2021 +0900
@@ -18,13 +18,13 @@
1818 </tr>
1919 <tr>
2020 <td>なし</td>
21- <td id="url1">http://localhost:8086/example/sports/soccer/teamlist</td>
21+ <td id="url1">${#DOMAIN#}/example/sports/soccer/teamlist</td>
2222 <td id="json1"></td>
2323 <td><input type="submit" value="取得" onClick="get_data(1)"></input></td>
2424 </tr>
2525 <tr>
2626 <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>
2828 <td><pre id="json2">
2929 {
3030 "league": "J1"
@@ -33,7 +33,7 @@
3333 </tr>
3434 <tr>
3535 <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>
3737 <td><pre id="json3">
3838 {
3939 "tid": ["JL06","JL28","JL29", "JL04","JL26"]
@@ -42,7 +42,7 @@
4242 </tr>
4343 <tr>
4444 <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>
4646 <td><pre id="json4">
4747 {
4848 "league": "J1",
@@ -52,7 +52,7 @@
5252 </tr>
5353 <tr>
5454 <td>範囲指定</td>
55- <td id="url5">http://localhost:8086/example/sports/soccer/teamlist</td>
55+ <td id="url5">${#DOMAIN#}/example/sports/soccer/teamlist</td>
5656 <td><pre id="json5">
5757 {
5858 "tid": {
@@ -64,7 +64,7 @@
6464 </tr>
6565 <tr>
6666 <td>該当データなし</td>
67- <td id="url6">http://localhost:8086/example/sports/soccer/teamlist</td>
67+ <td id="url6">${#DOMAIN#}/example/sports/soccer/teamlist</td>
6868 <td><pre id="json6">
6969 {
7070 "league": "J0"
diff -r 988362910eb8 -r df8acbacbd17 pagedata/example/example4.html
--- a/pagedata/example/example4.html Sun Sep 19 08:37:55 2021 +0900
+++ b/pagedata/example/example4.html Sun Sep 19 08:40:46 2021 +0900
@@ -21,7 +21,7 @@
2121 </tr>
2222 <tr>
2323 <td>なし</td>
24- <td id="url1">http://localhost:8086/example/sports/baseball/teamname</td>
24+ <td id="url1">${#DOMAIN#}/example/sports/baseball/teamname</td>
2525 <td><pre id="json1">
2626 {
2727 "league": "パ・リーグ",
@@ -33,18 +33,19 @@
3333 <br/>
3434 対応している組み込み文字は以下。<br/>
3535 <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>"&#36;{#SYSDATE#}" </td><td>現在時刻</td> <td style="padding-left:50px;">${#SYSDATE#} </td></tr>
37+<tr><td>"&#36;{#SYS_YMDHMS#}" </td><td>同上</td> <td style="padding-left:50px;">${#SYS_YMDHMS#} </td></tr>
38+<tr><td>"&#36;{#SYS_YMD#}" </td><td>現在日</td> <td style="padding-left:50px;">${#SYS_YMD#} </td></tr>
39+<tr><td>"&#36;{#SYS_HM#}" </td><td>現在時刻</td> <td style="padding-left:50px;">${#SYS_HM#} </td></tr>
40+<tr><td>"&#36;{#SYS_YMD#}" </td><td>同上(年月日のみ)</td><td style="padding-left:50px;">${#SYS_YMD#} </td></tr>
41+<tr><td>"&#36;{#SYS_MSEC#}" </td><td>通算ミリ秒</td> <td style="padding-left:50px;">${#SYS_MSEC#} </td></tr>
42+<tr><td>"&#36;{#SYS_SEC#}" </td><td>通算秒</td> <td style="padding-left:50px;">${#SYS_SEC#} </td></tr>
43+<tr><td>"&#36;{#THREAD_ID#}" </td><td>スレッドID</td> <td style="padding-left:50px;">${#THREAD_ID#} </td></tr>
44+<tr><td>"&#36;{#THREAD_NAME#}" </td><td>スレッド名</td> <td style="padding-left:50px;">${#THREAD_NAME#} </td></tr>
45+<tr><td>"&#36;{#PATHx#}" </td><td>URLのパス0~N</td> <td style="padding-left:50px;">${#PATH0#}, ${#PATH1#}, ... </td></tr>
46+<tr><td>"&#36;{#URL#}" </td><td>URL全体</td> <td style="padding-left:50px;">${#URL#} </td></tr>
47+<tr><td>"&#36;{#DOMAIN#}" </td><td>URL先頭部分</td> <td style="padding-left:50px;">${#DOMAIN#} </td></tr>
48+<tr><td>"&#36;{#SESSION_ID#}" </td><td>セションID</td> <td style="padding-left:50px;">${#SESSION_ID#} </td></tr>
4849 </table>
4950 <br/>
5051 ◎応答データ(順不定)<br/>
diff -r 988362910eb8 -r df8acbacbd17 src/main/java/jp/nanah/bastub/controller/AnyRestController.java
--- a/src/main/java/jp/nanah/bastub/controller/AnyRestController.java Sun Sep 19 08:37:55 2021 +0900
+++ b/src/main/java/jp/nanah/bastub/controller/AnyRestController.java Sun Sep 19 08:40:46 2021 +0900
@@ -222,12 +222,15 @@
222222 return errormsg;
223223 }
224224
225+ UsingInfo ui = UsingInfo.getInitInstance(pathList, req);
226+
225227 //静的リソースはここで読み込んで返す
226228 String ext = BastubUtils.getExtText(req.getRequestURI());
227229 if (ext.length() > 0 && STATIC_RESOURCE_EXT.indexOf(ext) >= 0){
228230 File htmlFile = BastubUtils.getPagedataPath(pageDir, req.getRequestURI(), req.getMethod(), "");
229231 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);
231234 }
232235
233236 //パスを生成
@@ -297,8 +300,6 @@
297300 //=================================
298301 // [5] 応答データを生成
299302 //=================================
300- UsingInfo ui = UsingInfo.getInitInstance(pathList, req);
301-
302303 jsonService.setDataToJsonObject(null, jsonInfo.getJsonObject(), resultTarget, ui);
303304
304305 //応答
diff -r 988362910eb8 -r df8acbacbd17 src/main/java/jp/nanah/bastub/service/UsingInfo.java
--- a/src/main/java/jp/nanah/bastub/service/UsingInfo.java Sun Sep 19 08:37:55 2021 +0900
+++ b/src/main/java/jp/nanah/bastub/service/UsingInfo.java Sun Sep 19 08:40:46 2021 +0900
@@ -61,13 +61,17 @@
6161 map.put("${#SYS_SEC#}", String.valueOf(System.currentTimeMillis()/1000));
6262 map.put("${#THREAD_ID#}", String.valueOf(Thread.currentThread().getId()));
6363 map.put("${#THREAD_NAME#}", Thread.currentThread().getName());
64+ map.put("${#SESSION_ID#}", req.getSession(true).getId());
6465
6566 //"${#PATHx#}→パス値に変換
6667 for (int i=0; i<pathList.size(); i++){
6768 map.put("${#PATH" + i + "#}", pathList.get(i));
6869 }
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+
7175
7276 return ui;
7377 }
@@ -221,4 +225,13 @@
221225 return true;
222226 }
223227
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+ }
224237 }
diff -r 988362910eb8 -r df8acbacbd17 src/main/java/jp/nanah/bastub/util/BastubUtils.java
--- a/src/main/java/jp/nanah/bastub/util/BastubUtils.java Sun Sep 19 08:37:55 2021 +0900
+++ b/src/main/java/jp/nanah/bastub/util/BastubUtils.java Sun Sep 19 08:40:46 2021 +0900
@@ -134,6 +134,23 @@
134134 }
135135 }
136136
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+
137154 //===============================
138155 // POI関連
139156 //===============================
diff -r 988362910eb8 -r df8acbacbd17 src/main/resources/application.properties
--- a/src/main/resources/application.properties Sun Sep 19 08:37:55 2021 +0900
+++ b/src/main/resources/application.properties Sun Sep 19 08:40:46 2021 +0900
@@ -3,9 +3,11 @@
33 server.port=8086
44
55 #\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
911 #(ex)
1012 pagedata.root=../../pagedata
1113 #pagedata.root=c:\\App\\Bastub