Skip to content

Commit

Permalink
增加限流
Browse files Browse the repository at this point in the history
  • Loading branch information
fengfei committed May 2, 2018
1 parent 2f01758 commit f3d791d
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 5 deletions.
26 changes: 25 additions & 1 deletion html/pages/api/edit.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,22 @@ <h1>Edit api</h1>
<label>Original uri</label>
<input type="text" class="form-control" name="original_uri" placeholder="The backend service's uri">
</div>
<div class="form-group">
<label>针对URI限流统计周期(秒)</label>
<input type="number" class="form-control" name="uri_limit_seconds" placeholder="针对URI限流统计周期(秒)">
</div>
<div class="form-group">
<label>针对URI限流统计周期内最大允许请求数</label>
<input type="number" class="form-control" name="uri_limit_times" placeholder="针对URI限流统计周期内最大允许请求数">
</div>
<div class="form-group">
<label>针对URI单个IP限流统计周期(秒)</label>
<input type="number" class="form-control" name="ip_uri_limit_seconds" placeholder="针对URI限流统计周期(秒)">
</div>
<div class="form-group">
<label>针对URI单个IP限流统计周期内最大允许请求数</label>
<input type="number" class="form-control" name="ip_uri_limit_times" placeholder="针对URI限流统计周期内最大允许请求数">
</div>
<div class="form-group">
<label >uri description</label>
<input type="text" class="form-control" name="description" placeholder="uri description">
Expand All @@ -33,7 +49,15 @@ <h1>Edit api</h1>
<script type="text/javascript">
$(".content-header h1").html(domain_name+" > "+service_name+" > Edit service uri")
$("#edit-api-btn").click(function(){
var params = {api_id:api_id,request_uri:$("input[name='request_uri']").val(),original_uri:$("input[name='original_uri']").val(),description:$("input[name='description']").val()};
var params = {
api_id:api_id,
request_uri:$("input[name='request_uri']").val(),
original_uri:$("input[name='original_uri']").val(),
uri_limit_seconds:$("input[name='uri_limit_seconds']").val(),
uri_limit_times:$("input[name='uri_limit_times']").val(),
ip_uri_limit_seconds:$("input[name='ip_uri_limit_seconds']").val(),
original_uri:$("input[name='original_uri']").val(),
ip_uri_limit_times:$("input[name='ip_uri_limit_times']").val()};
api_invoke("/api/v1/api/edit", params, function(data){
if(data.errno == 0){
load_page("/pages/api/list.html");
Expand Down
4 changes: 4 additions & 0 deletions pgw.sql
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ CREATE TABLE `agw_api` (
`service_id` int(11) DEFAULT NULL,
`request_uri` varchar(64) DEFAULT NULL,
`original_uri` varchar(64) DEFAULT NULL,
`uri_limit_seconds` int(10) NOT NULL DEFAULT '0',
`uri_limit_times` int(10) NOT NULL DEFAULT '0',
`ip_uri_limit_seconds` int(10) NOT NULL DEFAULT '0',
`ip_uri_limit_times` int(10) NOT NULL DEFAULT '0',
`description` varchar(128) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `agw_api` (`id`, `service_id`, `request_uri`, `original_uri`, `description`) VALUES
Expand Down
4 changes: 2 additions & 2 deletions src/manage/controller.lua
Original file line number Diff line number Diff line change
Expand Up @@ -145,8 +145,8 @@ function _M.run()
end)

app:route("/api/v1/api/edit", function(params)
check_require_params(params, { "api_id", "request_uri", "original_uri", "description" })
return api_model.update(params["api_id"], params["request_uri"], params["original_uri"], params["description"])
check_require_params(params, { "uri_limit_seconds", "uri_limit_times", "ip_uri_limit_seconds", "ip_uri_limit_times", "api_id", "request_uri", "original_uri", "description" })
return api_model.update(params["api_id"], params["request_uri"], params["original_uri"], params["uri_limit_seconds"], params["uri_limit_times"], params["ip_uri_limit_seconds"], params["ip_uri_limit_times"], params["description"])
end)

app:run()
Expand Down
4 changes: 2 additions & 2 deletions src/model/api.lua
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ function api_model.deleteByServiceId(sid)
return res, err
end

function api_model.update(id, request_uri, original_uri, description)
function api_model.update(id, request_uri, original_uri, uri_limit_seconds, uri_limit_times, ip_uri_limit_seconds, ip_uri_limit_times, description)
local db = mysql.getDb()
description = ndk.set_var.set_quote_sql_str(description)
local res, err, _, _ = db:query("UPDATE agw_api SET request_uri=\'" .. request_uri .. "\',original_uri=\'" .. original_uri .. "\',description=" .. description .. " WHERE id=" .. id, 10)
local res, err, _, _ = db:query("UPDATE agw_api SET ip_uri_limit_times=" .. ip_uri_limit_times .. ",ip_uri_limit_seconds=" .. ip_uri_limit_seconds .. ",uri_limit_times=" .. uri_limit_times .. ",uri_limit_seconds=" .. uri_limit_seconds .. ",request_uri=\'" .. request_uri .. "\',original_uri=\'" .. original_uri .. "\',description=" .. description .. " WHERE id=" .. id, 10)
db:set_keepalive(10000, 10)
return res, err
end
Expand Down

0 comments on commit f3d791d

Please sign in to comment.