Skip to content

Commit 9b56483

Browse files
authored
Merge pull request #350 from sbs2001/trailing-slash-api-fix
Make trailing slash optional in apis
2 parents 137d88a + 8ce911a commit 9b56483

2 files changed

Lines changed: 17 additions & 9 deletions

File tree

vulnerabilities/tests/test_api.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -203,31 +203,31 @@ def test_bulk_vulnerabilities_api(self):
203203
"resolved_packages": [
204204
OrderedDict(
205205
[
206-
("url", "http://testserver/api/packages/2/"),
206+
("url", "http://testserver/api/packages/2"),
207207
("purl", "pkg:deb/debian/mimetex@1.74-1?distro=jessie"),
208208
]
209209
),
210210
OrderedDict(
211211
[
212-
("url", "http://testserver/api/packages/3/"),
212+
("url", "http://testserver/api/packages/3"),
213213
("purl", "pkg:deb/debian/mimetex@1.50-1.1?distro=jessie"),
214214
]
215215
),
216216
],
217217
"unresolved_packages": [],
218-
"url": "http://testserver/api/vulnerabilities/2/",
218+
"url": "http://testserver/api/vulnerabilities/2",
219219
},
220220
"CVE-2014-8242": {
221221
"resolved_packages": [],
222222
"unresolved_packages": [
223223
OrderedDict(
224224
[
225-
("url", "http://testserver/api/packages/1/"),
225+
("url", "http://testserver/api/packages/1"),
226226
("purl", "pkg:deb/debian/librsync@0.9.7-10?distro=jessie"),
227227
]
228228
)
229229
],
230-
"url": "http://testserver/api/vulnerabilities/1/",
230+
"url": "http://testserver/api/vulnerabilities/1",
231231
},
232232
"RANDOM-CVE": {},
233233
}
@@ -253,7 +253,7 @@ def test_bulk_packages_api(self):
253253
"unresolved_vulnerabilities": [
254254
OrderedDict(
255255
[
256-
("url", "http://testserver/api/vulnerabilities/1/"),
256+
("url", "http://testserver/api/vulnerabilities/1"),
257257
("vulnerability_id", "CVE-2014-8242"),
258258
]
259259
)
@@ -263,13 +263,13 @@ def test_bulk_packages_api(self):
263263
"resolved_vulnerabilities": [
264264
OrderedDict(
265265
[
266-
("url", "http://testserver/api/vulnerabilities/2/"),
266+
("url", "http://testserver/api/vulnerabilities/2"),
267267
("vulnerability_id", "CVE-2009-1382"),
268268
]
269269
),
270270
OrderedDict(
271271
[
272-
("url", "http://testserver/api/vulnerabilities/3/"),
272+
("url", "http://testserver/api/vulnerabilities/3"),
273273
("vulnerability_id", "CVE-2009-2459"),
274274
]
275275
),

vulnerablecode/urls.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,15 @@
4242
from vulnerabilities.views import VulnerabilityReferenceCreate
4343
from vulnerablecode.settings import ENABLE_CURATION
4444

45-
api_router = DefaultRouter()
45+
46+
# See the comment at https://stackoverflow.com/a/46163870.
47+
class OptionalSlashRouter(DefaultRouter):
48+
def __init__(self, *args, **kwargs):
49+
super(DefaultRouter, self).__init__(*args, **kwargs)
50+
self.trailing_slash = '/?'
51+
52+
53+
api_router = OptionalSlashRouter()
4654
api_router.register(r"packages", PackageViewSet)
4755
# `DefaultRouter` requires `basename` when registering viewsets which don't
4856
# define a queryset.

0 commit comments

Comments
 (0)