系統(tǒng)設(shè)計與分析 作業(yè)3

1. 調(diào)研經(jīng)驗

在本次項目中,我負責了調(diào)研工作,其中用到了“問卷星”這一平臺。
在這個平臺上可以比較輕松地設(shè)計和發(fā)布問卷,并查看統(tǒng)計結(jié)果。


比較需要花心思的是問題的設(shè)置,在設(shè)置某兩道題的選項時,花費了較多心思。


最后,分析調(diào)查結(jié)果,寫成文檔,發(fā)布到項目的github上
github 調(diào)研報告

2. 后臺開發(fā)學習

2.1 nodejs express使用https

微信小程序的訪問要求必須是Https協(xié)議,所以我們可以使用nodejs的express框架
參考 nodejs express使用https
主要過程是設(shè)置認證,監(jiān)聽SSL端口,并設(shè)置路由響應(yīng)

var app = require('express')();
var fs = require('fs');
var http = require('http');
var https = require('https');

// https設(shè)置認證
var privateKey  = fs.readFileSync('/path/to/private.pem', 'utf8'),
var certificate = fs.readFileSync('/path/to/file.crt', 'utf8');
var credentials = {key: privateKey, cert: certificate};

var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app); // https啟動服務(wù)器
var PORT = 18080;
var SSLPORT = 18081;

httpServer.listen(PORT, function() {
    console.log('HTTP Server is running on: http://localhost:%s', PORT);
});
httpsServer.listen(SSLPORT, function() { // https監(jiān)聽端口
    console.log('HTTPS Server is running on: https://localhost:%s', SSLPORT);
});

// Welcome
app.get('/', function(req, res) {
    if(req.protocol === 'https') {
        res.status(200).send('Welcome to Safety Land!');
    }
    else {
        res.status(200).send('Welcome!');
    }
});

2.2 Restful的理解,Restful 優(yōu)缺點

參考 Restful的理解,Restful 優(yōu)缺點

我們知道restful是面向資源的,但并不是任何場景都適合用restful的思想。
比如

  1. 批量刪除數(shù)據(jù),DELETE /tickets/12就不合適了
  2. 當查詢操作的參數(shù)過長時,GET也不合適,比如查詢1000個訂單的信息,GET /tickets就得傳一個長度為1000的數(shù)組
  3. 對同一個事物的不同屬性進行更新,就不適合全部用PUT ticket/12一個域名來一概而論。(雖然也能傳遞參數(shù),但還是略顯麻煩)

所以

  1. 簡單查詢盡量用GET,復(fù)雜查詢和更新用POST,用的最多;
  2. 不用PUT和DELETE,避免增加復(fù)雜度。
    看看BAT的很多openapi,也是表面上用著restful,實際沒有嚴格遵守,還是以get和post為主。

詳細做法如下:

//根據(jù)訂單id獲取訂單
GET oms/order/queryOrderById?id=value1&param2=value2
 
//根據(jù)訂單id List獲取訂單
POST oms/order/queryOrderByIdList
 
//根據(jù)條件查詢訂單,帶分頁參數(shù)
POST oms/order/queryOrderByCondition
 
//更新訂單收款狀態(tài)
POST oms/order/updateOrderCollectionStatus
 
//批量更新訂單收款狀態(tài)
POST oms/order/updateOrderCollectionStatusInBatch
 
//批量更新訂單收款狀態(tài)
POST oms/order/updateOrderCollectionStatusInBatch
 
//批量刪除訂單,帶操作來源
POST oms/order/deleteOrderInBatch
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容