Skip to content

Commit 0d3656c

Browse files
committed
Support + tests for optional http string route params
1 parent c5ea852 commit 0d3656c

File tree

19 files changed

+105
-80
lines changed

19 files changed

+105
-80
lines changed

sample/HttpTrigger-CSharp-CustomRoute/function.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"name": "info",
66
"direction": "in",
77
"methods": [ "get" ],
8-
"route": "csharp/products/{category:alpha}/{id:int?}"
8+
"route": "csharp/products/{category:alpha?}/{id:int?}"
99
},
1010
{
1111
"type": "http",

sample/HttpTrigger-CustomRoute-Get/function.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"name": "req",
66
"direction": "in",
77
"methods": [ "get" ],
8-
"route": "node/products/{category:alpha}/{id:guid?}"
8+
"route": "node/products/{category:alpha?}/{id:guid?}"
99
},
1010
{
1111
"type": "http",
Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,32 @@
11
var util = require('util');
22

3+
var catalog = [
4+
{
5+
id: '12ec126e-3208-4542-a4a0-30e65438832a',
6+
category: 'electronics'
7+
},
8+
{
9+
id: '4e2796ae-b865-4071-8a20-2a15cbaf856c',
10+
category: 'electronics'
11+
},
12+
{
13+
id: '52aaf427-45fb-49dd-9105-15bfb217db5e',
14+
category: 'housewares'
15+
}
16+
];
17+
318
module.exports = function (context, req) {
419
context.log('Node.js HTTP trigger function processed a request. Name=%s', req.query.name);
520

621
context.log('category: %s id: %s', context.bindingData.category, context.bindingData.id);
722

8-
if (req.params.id) {
9-
// single product lookup
10-
result = {
11-
id: req.params.id,
12-
category: req.params.category
13-
};
14-
} else {
15-
// multiple products
16-
result = [
17-
{
18-
id: '12ec126e-3208-4542-a4a0-30e65438832a',
19-
category: req.params.category
20-
},
21-
{
22-
id: '4e2796ae-b865-4071-8a20-2a15cbaf856c',
23-
category: req.params.category
24-
}
25-
];
26-
}
23+
var results = [];
24+
catalog.forEach(function (product) {
25+
if ((!req.params.id || (product.id == req.params.id)) &&
26+
(!req.params.category || (product.category == req.params.category))) {
27+
results.push(product);
28+
}
29+
});
2730

28-
context.done(null, result);
31+
context.done(null, results);
2932
}

src/WebJobs.Script.Extensibility.NuGet/WebJobs.Script.Extensibility.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<requireLicenseAcceptance>true</requireLicenseAcceptance>
1515
<tags>Microsoft Azure WebJobs Jobs Script Extensibility</tags>
1616
<dependencies>
17-
<dependency id="Microsoft.Azure.WebJobs" version="2.1.0-beta1-10729" />
17+
<dependency id="Microsoft.Azure.WebJobs" version="2.1.0-beta1-10750" />
1818
</dependencies>
1919
</metadata>
2020
</package>

src/WebJobs.Script.Extensibility/WebJobs.Script.Extensibility.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@
4343
<Private>True</Private>
4444
</Reference>
4545
<Reference Include="Microsoft.Azure.WebJobs, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
46-
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Core.2.1.0-beta1-10729\lib\net45\Microsoft.Azure.WebJobs.dll</HintPath>
46+
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Core.2.1.0-beta1-10750\lib\net45\Microsoft.Azure.WebJobs.dll</HintPath>
4747
</Reference>
4848
<Reference Include="Microsoft.Azure.WebJobs.Host, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
49-
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.2.1.0-beta1-10729\lib\net45\Microsoft.Azure.WebJobs.Host.dll</HintPath>
49+
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.2.1.0-beta1-10750\lib\net45\Microsoft.Azure.WebJobs.Host.dll</HintPath>
5050
</Reference>
5151
<Reference Include="Microsoft.Data.Edm, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
5252
<HintPath>..\..\packages\Microsoft.Data.Edm.5.8.1\lib\net40\Microsoft.Data.Edm.dll</HintPath>

src/WebJobs.Script.Extensibility/packages.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="Microsoft.Azure.KeyVault.Core" version="1.0.0" targetFramework="net452" />
4-
<package id="Microsoft.Azure.WebJobs" version="2.1.0-beta1-10729" targetFramework="net46" />
5-
<package id="Microsoft.Azure.WebJobs.Core" version="2.1.0-beta1-10729" targetFramework="net46" />
4+
<package id="Microsoft.Azure.WebJobs" version="2.1.0-beta1-10750" targetFramework="net46" />
5+
<package id="Microsoft.Azure.WebJobs.Core" version="2.1.0-beta1-10750" targetFramework="net46" />
66
<package id="Microsoft.Data.Edm" version="5.8.1" targetFramework="net45" />
77
<package id="Microsoft.Data.OData" version="5.8.1" targetFramework="net45" />
88
<package id="Microsoft.Data.Services.Client" version="5.8.1" targetFramework="net45" />

src/WebJobs.Script.Host/WebJobs.Script.Host.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
<Private>True</Private>
105105
</Reference>
106106
<Reference Include="Microsoft.Azure.WebJobs, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
107-
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Core.2.1.0-beta1-10729\lib\net45\Microsoft.Azure.WebJobs.dll</HintPath>
107+
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Core.2.1.0-beta1-10750\lib\net45\Microsoft.Azure.WebJobs.dll</HintPath>
108108
</Reference>
109109
<Reference Include="Microsoft.Azure.WebJobs.Extensions, Version=2.1.0.0, Culture=neutral, processorArchitecture=MSIL">
110110
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.2.1.0-beta1-10445\lib\net45\Microsoft.Azure.WebJobs.Extensions.dll</HintPath>
@@ -131,16 +131,16 @@
131131
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.Twilio.1.1.0-beta1-10445\lib\net45\Microsoft.Azure.WebJobs.Extensions.Twilio.dll</HintPath>
132132
</Reference>
133133
<Reference Include="Microsoft.Azure.WebJobs.Host, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
134-
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.2.1.0-beta1-10729\lib\net45\Microsoft.Azure.WebJobs.Host.dll</HintPath>
134+
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.2.1.0-beta1-10750\lib\net45\Microsoft.Azure.WebJobs.Host.dll</HintPath>
135135
</Reference>
136136
<Reference Include="Microsoft.Azure.WebJobs.Logging.ApplicationInsights, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
137-
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Logging.ApplicationInsights.2.1.0-beta1-10729\lib\net45\Microsoft.Azure.WebJobs.Logging.ApplicationInsights.dll</HintPath>
137+
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Logging.ApplicationInsights.2.1.0-beta1-10750\lib\net45\Microsoft.Azure.WebJobs.Logging.ApplicationInsights.dll</HintPath>
138138
</Reference>
139139
<Reference Include="Microsoft.Azure.WebJobs.Script.Extensibility, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
140140
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Script.Extensibility.1.0.0-beta3-10955\lib\net45\Microsoft.Azure.WebJobs.Script.Extensibility.dll</HintPath>
141141
</Reference>
142142
<Reference Include="Microsoft.Azure.WebJobs.ServiceBus, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
143-
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.ServiceBus.2.1.0-beta1-10729\lib\net45\Microsoft.Azure.WebJobs.ServiceBus.dll</HintPath>
143+
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.ServiceBus.2.1.0-beta1-10750\lib\net45\Microsoft.Azure.WebJobs.ServiceBus.dll</HintPath>
144144
</Reference>
145145
<Reference Include="Microsoft.Bot.Connector.DirectLine, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
146146
<HintPath>..\..\packages\Microsoft.Bot.Connector.DirectLine.3.0.0-beta\lib\net45\Microsoft.Bot.Connector.DirectLine.dll</HintPath>

src/WebJobs.Script.Host/packages.config

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
<package id="Microsoft.Azure.Mobile.Client" version="3.1.0" targetFramework="net46" />
1717
<package id="Microsoft.Azure.NotificationHubs" version="1.0.7" targetFramework="net46" />
1818
<package id="Microsoft.Azure.ServiceBus.EventProcessorHost" version="2.2.10" targetFramework="net46" />
19-
<package id="Microsoft.Azure.WebJobs" version="2.1.0-beta1-10729" targetFramework="net46" />
20-
<package id="Microsoft.Azure.WebJobs.Core" version="2.1.0-beta1-10729" targetFramework="net46" />
19+
<package id="Microsoft.Azure.WebJobs" version="2.1.0-beta1-10750" targetFramework="net46" />
20+
<package id="Microsoft.Azure.WebJobs.Core" version="2.1.0-beta1-10750" targetFramework="net46" />
2121
<package id="Microsoft.Azure.WebJobs.Extensions" version="2.1.0-beta1-10445" targetFramework="net46" />
2222
<package id="Microsoft.Azure.WebJobs.Extensions.ApiHub" version="1.0.0-beta4-10445" targetFramework="net46" />
2323
<package id="Microsoft.Azure.WebJobs.Extensions.BotFramework" version="1.0.14-beta" targetFramework="net46" />
@@ -26,9 +26,9 @@
2626
<package id="Microsoft.Azure.WebJobs.Extensions.NotificationHubs" version="1.1.0-beta1-10445" targetFramework="net46" />
2727
<package id="Microsoft.Azure.WebJobs.Extensions.SendGrid" version="2.1.0-beta1-10445" targetFramework="net46" />
2828
<package id="Microsoft.Azure.WebJobs.Extensions.Twilio" version="1.1.0-beta1-10445" targetFramework="net46" />
29-
<package id="Microsoft.Azure.WebJobs.Logging.ApplicationInsights" version="2.1.0-beta1-10729" targetFramework="net46" />
29+
<package id="Microsoft.Azure.WebJobs.Logging.ApplicationInsights" version="2.1.0-beta1-10750" targetFramework="net46" />
3030
<package id="Microsoft.Azure.WebJobs.Script.Extensibility" version="1.0.0-beta3-10955" targetFramework="net46" />
31-
<package id="Microsoft.Azure.WebJobs.ServiceBus" version="2.1.0-beta1-10729" targetFramework="net46" />
31+
<package id="Microsoft.Azure.WebJobs.ServiceBus" version="2.1.0-beta1-10750" targetFramework="net46" />
3232
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="net46" />
3333
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net46" />
3434
<package id="Microsoft.Bot.Connector.DirectLine" version="3.0.0-beta" targetFramework="net46" />

src/WebJobs.Script.NuGet/WebJobs.Script.nuspec

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
<requireLicenseAcceptance>true</requireLicenseAcceptance>
1515
<tags>Microsoft Azure WebJobs Jobs Script Node.js</tags>
1616
<dependencies>
17-
<dependency id="Microsoft.Azure.WebJobs" version="2.1.0-beta1-10729" />
18-
<dependency id="Microsoft.Azure.WebJobs.Logging.ApplicationInsights" version="2.1.0-beta1-10729" />
19-
<dependency id="Microsoft.Azure.WebJobs.ServiceBus" version="2.1.0-beta1-10729" />
17+
<dependency id="Microsoft.Azure.WebJobs" version="2.1.0-beta1-10750" />
18+
<dependency id="Microsoft.Azure.WebJobs.Logging.ApplicationInsights" version="2.1.0-beta1-10750" />
19+
<dependency id="Microsoft.Azure.WebJobs.ServiceBus" version="2.1.0-beta1-10750" />
2020
<dependency id="Microsoft.Azure.WebJobs.Extensions" version="2.1.0-beta1-10445" />
2121
<dependency id="Microsoft.Azure.WebJobs.Extensions.SendGrid" version="2.1.0-beta1-10445" />
2222
<dependency id="Microsoft.Azure.WebJobs.Extensions.Twilio" version="1.1.0-beta1-10445" />

src/WebJobs.Script.WebHost/Web.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@
181181
<dependentAssembly>
182182
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
183183
<!--Explicitly redirecting back to 4.0.0. See https://github.com/dotnet/corefx/issues/15693 for details-->
184-
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.0.0.0" />
184+
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
185185
</dependentAssembly>
186186
<dependentAssembly>
187187
<assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
@@ -202,7 +202,7 @@
202202
<dependentAssembly>
203203
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
204204
<!--Explicitly redirecting back to 4.0.0. See https://github.com/dotnet/corefx/issues/16805 for details-->
205-
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.0.0.0" />
205+
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
206206
</dependentAssembly>
207207
<dependentAssembly>
208208
<assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />

0 commit comments

Comments
 (0)