Endpoint registering '/ep' will no longer match '/ep/x'.
Trailing slashes removed. So '/ep/' will become '/ep'.
This commit is contained in:
parent
f949738db9
commit
7ae6910853
2 changed files with 6 additions and 3 deletions
|
|
@ -79,12 +79,15 @@ namespace Rests
|
||||||
|
|
||||||
protected virtual object ProcessRequest(object sender, RequestEventArgs e)
|
protected virtual object ProcessRequest(object sender, RequestEventArgs e)
|
||||||
{
|
{
|
||||||
|
var uri = e.Request.Uri.AbsolutePath;
|
||||||
|
uri = uri.TrimEnd('/');
|
||||||
|
|
||||||
foreach (var com in commands)
|
foreach (var com in commands)
|
||||||
{
|
{
|
||||||
var verbs = new RestVerbs();
|
var verbs = new RestVerbs();
|
||||||
if (com.HasVerbs)
|
if (com.HasVerbs)
|
||||||
{
|
{
|
||||||
var match = Regex.Match(e.Request.Uri.AbsolutePath, com.UriVerbMatch);
|
var match = Regex.Match(uri, com.UriVerbMatch);
|
||||||
if (!match.Success)
|
if (!match.Success)
|
||||||
continue;
|
continue;
|
||||||
if ((match.Groups.Count - 1) != com.UriVerbs.Length)
|
if ((match.Groups.Count - 1) != com.UriVerbs.Length)
|
||||||
|
|
@ -93,7 +96,7 @@ namespace Rests
|
||||||
for (int i = 0; i < com.UriVerbs.Length; i++)
|
for (int i = 0; i < com.UriVerbs.Length; i++)
|
||||||
verbs.Add(com.UriVerbs[i], match.Groups[i + 1].Value);
|
verbs.Add(com.UriVerbs[i], match.Groups[i + 1].Value);
|
||||||
}
|
}
|
||||||
else if (com.UriTemplate.ToLower() != e.Request.Uri.AbsolutePath.ToLower())
|
else if (com.UriTemplate.ToLower() != uri.ToLower())
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ namespace Rests
|
||||||
{
|
{
|
||||||
Name = name;
|
Name = name;
|
||||||
UriTemplate = uritemplate;
|
UriTemplate = uritemplate;
|
||||||
UriVerbMatch = string.Join("([^/]*)", Regex.Split(uritemplate, "\\{[^\\{\\}]*\\}"));
|
UriVerbMatch = string.Format("^{0}$", string.Join("([^/]*)", Regex.Split(uritemplate, "\\{[^\\{\\}]*\\}")));
|
||||||
var matches = Regex.Matches(uritemplate, "\\{([^\\{\\}]*)\\}");
|
var matches = Regex.Matches(uritemplate, "\\{([^\\{\\}]*)\\}");
|
||||||
UriVerbs = (from Match match in matches select match.Groups[1].Value).ToArray();
|
UriVerbs = (from Match match in matches select match.Groups[1].Value).ToArray();
|
||||||
Callback = callback;
|
Callback = callback;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue