顯示具有 Swagger 標籤的文章。 顯示所有文章
顯示具有 Swagger 標籤的文章。 顯示所有文章

2018年9月20日

如何將 Node js X Swagger 架在 IIS


因為,專案需求,要裝 Swagger 架在 IIS 上,以下是需要裝的:


Nodejs X Swagger 怎麼建置,請參考以下文件:
以下是說明如何將可以 Run 的 Swagger,架在IIS上:


主要是裝:
URL Rewrite


iisnode releases


如果安裝成功的話,在
在系統上會看到(如下圖):URL Rewite 藍圈


在IIS > 模組裡面(紅圈),點擊兩下後,可以看到清單,裡面如果出現(下圖),就代表安裝成功:


====================================================


接下來步驟
「新增應用程式集區」>> 建立後  >> 「進階設定」 >> 「識別」 改成  「NetworkService」。




到「處理常式對應」(綠圈) >> 「新增模組對應」 >> 要求路徑填入您要 Run 的  js 檔。




至 Web.config
在 system.webServer 新增字串:app.js 是要 Run js 檔
<rewrite>
     <rules>
       <rule name="myapp">
         <match url="/*" />
         <action type="Rewrite" url="app.js" />
       </rule>
     </rules>
</rewrite>
<iisnode enableXFF="true" />


===========================================================


假這,您的 app.js 檔(在非IIS下可以正常執行)是: 請將原本的 PORT 改成 process.env.PORT
此外,請特別注意 /wfs 的設定,因為通常,我們可能不會將網路直接架在:Default Web Site之下,而是會再去新增 「新增應用程式」所以,/wfs = /別名,以上是特別要注意的。



'use strict';
var express = require('express');
var app = express();
var swaggerUi = require('swagger-ui-express');
var YAML = require('yamljs');
var swaggerDoc = YAML.load('api/swagger/swagger.yaml');/////指定到「此資料夾的」


// ip + '/wfs/api-docs' 會執行以下程式碼。(圖 1)
app.use('/wfs/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDoc));//讀取 yaml 檔


// ip + '/wfs' 會執行以下程式碼。(圖 2)
app.get('/wfs', function (req, res) {
 res.send(‘Server is exist!')
});


app.listen(process.env.PORT);//監聽 port


圖 1



圖 2

Node js X Swagger


--------- 藍色字 代表要下的指令
1.安裝 Node js
參考資料:https://nodejs.org/en/

先至 https://nodejs.org/en/ 下載.exe 檔。
2.安裝完畢後,打開 cmd
指令 node -v
指令 npm -v
如果有出現版號,代表安裝成功!
建立一個安裝node js專案的資料夾,指定到專案的資料夾,如下:
 
3.安裝 Swagger  

作業系統執行 npm 命令時,出現上面以上畫面,代表,您的系統沒有安裝 npm,
但…通常你裝了 node js.exe 檔,下達  npm -v 出現版號後,就可以開始使用。
npm install -g swagger
===   如果之前就跑過 Swagger 可以從以下開始    ===

4.建立Swagger的資料夾
swagger project create opendata <=== 資料夾名稱,選擇 express
express使用方式可參考:http://expressjs.com/zh-tw/

成功的話,就會出現 opendata


cd opendata <=== 資料夾名稱

如果想開啟編輯畫面可以下此指令:
swagger project edit
啟動Sever
swagger project start
啟動功能「預設」會出現 curl http://127.0.0.1:10010/hello?name=Scott
加入網址會出現「Hello, Scott!」
=======================================================
安裝下面三個檔案才能顯示Swagger UI並可以讀 yaml 檔
npm install swagger-ui
npm install swagger-tools
npm install yamljs
/// 安裝 swagger-ui-express
npm install swagger-ui-express

更新 /api/swagger/swagger.yaml。

====== app.js 修改成 Swagger 資料
'use strict';
var express = require('express');
var app = express();
var swaggerUi = require('swagger-ui-express');
var YAML = require('yamljs');
var swaggerDoc = YAML.load('api/swagger/swagger.yaml');/////指定到「此資料夾的」 

app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDoc));

app.get('/', function (req, res) {
  res.send('Server is exist!')
});
var PORT = 10010;
app.listen(PORT);//監聽 port