@@ -264,12 +264,12 @@ var _ = Describe("RestHandler", func() {
264264 "author" : map [string ]interface {}{
265265 "id" : "1" ,
266266 "type" : "users" ,
267- "resource" : "/posts/1/author" ,
267+ "resource" : "/v1/ posts/1/author" ,
268268 },
269269 "comments" : map [string ]interface {}{
270270 "ids" : []interface {}{"1" },
271271 "type" : "comments" ,
272- "resource" : "/posts/1/comments" ,
272+ "resource" : "/v1/ posts/1/comments" ,
273273 },
274274 },
275275 }
@@ -295,12 +295,12 @@ var _ = Describe("RestHandler", func() {
295295 "links" : map [string ]interface {}{
296296 "author" : map [string ]interface {}{
297297 "type" : "users" ,
298- "resource" : "/posts/2/author" ,
298+ "resource" : "/v1/ posts/2/author" ,
299299 },
300300 "comments" : map [string ]interface {}{
301301 "ids" : []interface {}{},
302302 "type" : "comments" ,
303- "resource" : "/posts/2/comments" ,
303+ "resource" : "/v1/ posts/2/comments" ,
304304 },
305305 },
306306 }
@@ -313,17 +313,17 @@ var _ = Describe("RestHandler", func() {
313313 "links" : map [string ]interface {}{
314314 "author" : map [string ]interface {}{
315315 "type" : "users" ,
316- "resource" : "/posts/3/author" ,
316+ "resource" : "/v1/ posts/3/author" ,
317317 },
318318 "comments" : map [string ]interface {}{
319319 "ids" : []interface {}{},
320320 "type" : "comments" ,
321- "resource" : "/posts/3/comments" ,
321+ "resource" : "/v1/ posts/3/comments" ,
322322 },
323323 },
324324 }
325325
326- api = NewAPI ("" )
326+ api = NewAPI ("v1 " )
327327 api .AddResource (Post {}, source )
328328 api .AddResource (User {}, & userSource {})
329329 api .AddResource (Comment {}, & commentSource {})
@@ -332,7 +332,7 @@ var _ = Describe("RestHandler", func() {
332332 })
333333
334334 It ("GETs collections" , func () {
335- req , err := http .NewRequest ("GET" , "/posts" , nil )
335+ req , err := http .NewRequest ("GET" , "/v1/ posts" , nil )
336336 Expect (err ).To (BeNil ())
337337 api .Handler ().ServeHTTP (rec , req )
338338 Expect (rec .Code ).To (Equal (http .StatusOK ))
@@ -345,7 +345,7 @@ var _ = Describe("RestHandler", func() {
345345 })
346346
347347 It ("GETs single objects" , func () {
348- req , err := http .NewRequest ("GET" , "/posts/1" , nil )
348+ req , err := http .NewRequest ("GET" , "/v1/ posts/1" , nil )
349349 Expect (err ).To (BeNil ())
350350 api .Handler ().ServeHTTP (rec , req )
351351 Expect (rec .Code ).To (Equal (http .StatusOK ))
@@ -358,7 +358,7 @@ var _ = Describe("RestHandler", func() {
358358 })
359359
360360 It ("GETs multiple objects" , func () {
361- req , err := http .NewRequest ("GET" , "/posts/1,2" , nil )
361+ req , err := http .NewRequest ("GET" , "/v1/ posts/1,2" , nil )
362362 Expect (err ).To (BeNil ())
363363 api .Handler ().ServeHTTP (rec , req )
364364 Expect (rec .Code ).To (Equal (http .StatusOK ))
@@ -371,31 +371,31 @@ var _ = Describe("RestHandler", func() {
371371 })
372372
373373 It ("GETs related struct from resource url" , func () {
374- req , err := http .NewRequest ("GET" , "/posts/1/author" , nil )
374+ req , err := http .NewRequest ("GET" , "/v1/ posts/1/author" , nil )
375375 Expect (err ).ToNot (HaveOccurred ())
376376 api .Handler ().ServeHTTP (rec , req )
377377 Expect (rec .Code ).To (Equal (http .StatusOK ))
378378 Expect (rec .Body .Bytes ()).To (MatchJSON (`{"data": {"id": "1", "name": "Dieter", "type": "users"}}` ))
379379 })
380380
381381 It ("GETs related structs from resource url" , func () {
382- req , err := http .NewRequest ("GET" , "/posts/1/comments" , nil )
382+ req , err := http .NewRequest ("GET" , "/v1/ posts/1/comments" , nil )
383383 Expect (err ).ToNot (HaveOccurred ())
384384 api .Handler ().ServeHTTP (rec , req )
385385 Expect (rec .Code ).To (Equal (http .StatusOK ))
386386 Expect (rec .Body .Bytes ()).To (MatchJSON (`{"data": [{"id": "1", "value": "This is a stupid post!", "type": "comments"}]}` ))
387387 })
388388
389389 It ("Gets 404 if a related struct was not found" , func () {
390- req , err := http .NewRequest ("GET" , "/posts/1/unicorns" , nil )
390+ req , err := http .NewRequest ("GET" , "/v1/ posts/1/unicorns" , nil )
391391 Expect (err ).ToNot (HaveOccurred ())
392392 api .Handler ().ServeHTTP (rec , req )
393393 Expect (rec .Code ).To (Equal (http .StatusNotFound ))
394394 Expect (rec .Body .Bytes ()).ToNot (BeEmpty ())
395395 })
396396
397397 It ("404s" , func () {
398- req , err := http .NewRequest ("GET" , "/posts/23" , nil )
398+ req , err := http .NewRequest ("GET" , "/v1/ posts/23" , nil )
399399 Expect (err ).To (BeNil ())
400400 api .Handler ().ServeHTTP (rec , req )
401401 Expect (rec .Code ).To (Equal (http .StatusNotFound ))
@@ -405,11 +405,11 @@ var _ = Describe("RestHandler", func() {
405405
406406 It ("POSTSs new objects" , func () {
407407 reqBody := strings .NewReader (`{"posts": [{"title": "New Post"}]}` )
408- req , err := http .NewRequest ("POST" , "/posts" , reqBody )
408+ req , err := http .NewRequest ("POST" , "/v1/ posts" , reqBody )
409409 Expect (err ).To (BeNil ())
410410 api .Handler ().ServeHTTP (rec , req )
411411 Expect (rec .Code ).To (Equal (http .StatusCreated ))
412- Expect (rec .Header ().Get ("Location" )).To (Equal ("/posts/4" ))
412+ Expect (rec .Header ().Get ("Location" )).To (Equal ("/v1/ posts/4" ))
413413 var result map [string ]interface {}
414414 Expect (json .Unmarshal (rec .Body .Bytes (), & result )).To (BeNil ())
415415 Expect (result ).To (Equal (map [string ]interface {}{
@@ -421,12 +421,12 @@ var _ = Describe("RestHandler", func() {
421421 "links" : map [string ]interface {}{
422422 "author" : map [string ]interface {}{
423423 "type" : "users" ,
424- "resource" : "/posts/4/author" ,
424+ "resource" : "/v1/ posts/4/author" ,
425425 },
426426 "comments" : map [string ]interface {}{
427427 "ids" : []interface {}{},
428428 "type" : "comments" ,
429- "resource" : "/posts/4/comments" ,
429+ "resource" : "/v1/ posts/4/comments" ,
430430 },
431431 },
432432 },
@@ -435,7 +435,7 @@ var _ = Describe("RestHandler", func() {
435435
436436 It ("POSTSs new objects with trailing slash automatic redirect enabled" , func () {
437437 reqBody := strings .NewReader (`{"posts": [{"title": "New Post"}]}` )
438- req , err := http .NewRequest ("POST" , "/posts/" , reqBody )
438+ req , err := http .NewRequest ("POST" , "/v1/ posts/" , reqBody )
439439 Expect (err ).To (BeNil ())
440440 api .SetRedirectTrailingSlash (true )
441441 api .Handler ().ServeHTTP (rec , req )
@@ -444,7 +444,7 @@ var _ = Describe("RestHandler", func() {
444444
445445 It ("POSTSs new objects with trailing slash automatic redirect disabled" , func () {
446446 reqBody := strings .NewReader (`{"posts": [{"title": "New Post"}]}` )
447- req , err := http .NewRequest ("POST" , "/posts/" , reqBody )
447+ req , err := http .NewRequest ("POST" , "/v1/ posts/" , reqBody )
448448 Expect (err ).To (BeNil ())
449449 api .SetRedirectTrailingSlash (false )
450450 api .Handler ().ServeHTTP (rec , req )
@@ -453,7 +453,7 @@ var _ = Describe("RestHandler", func() {
453453
454454 It ("POSTSs multiple objects" , func () {
455455 reqBody := strings .NewReader (`{"posts": [{"title": "New Post"}, {"title" : "Second New Post"}]}` )
456- req , err := http .NewRequest ("POST" , "/posts" , reqBody )
456+ req , err := http .NewRequest ("POST" , "/v1/ posts" , reqBody )
457457 Expect (err ).To (BeNil ())
458458 api .Handler ().ServeHTTP (rec , req )
459459 Expect (rec .Code ).To (Equal (http .StatusInternalServerError ))
@@ -463,7 +463,7 @@ var _ = Describe("RestHandler", func() {
463463
464464 It ("PUTSs multiple objects" , func () {
465465 reqBody := strings .NewReader (`{"posts": [{"title": "New Post"}, {"title" : "Second New Post"}]}` )
466- req , err := http .NewRequest ("PUT" , "/posts/1" , reqBody )
466+ req , err := http .NewRequest ("PUT" , "/v1/ posts/1" , reqBody )
467467 Expect (err ).To (BeNil ())
468468 api .Handler ().ServeHTTP (rec , req )
469469 Expect (rec .Code ).To (Equal (http .StatusInternalServerError ))
@@ -472,23 +472,23 @@ var _ = Describe("RestHandler", func() {
472472 })
473473
474474 It ("OPTIONS on collection route" , func () {
475- req , err := http .NewRequest ("OPTIONS" , "/posts" , nil )
475+ req , err := http .NewRequest ("OPTIONS" , "/v1/ posts" , nil )
476476 api .Handler ().ServeHTTP (rec , req )
477477 Expect (err ).To (BeNil ())
478478 Expect (rec .Code ).To (Equal (http .StatusNoContent ))
479479 Expect (rec .Header ().Get ("Allow" )).To (Equal ("GET,POST,OPTIONS" ))
480480 })
481481
482482 It ("OPTIONS on element route" , func () {
483- req , err := http .NewRequest ("OPTIONS" , "/posts/1" , nil )
483+ req , err := http .NewRequest ("OPTIONS" , "/v1/ posts/1" , nil )
484484 api .Handler ().ServeHTTP (rec , req )
485485 Expect (err ).To (BeNil ())
486486 Expect (rec .Code ).To (Equal (http .StatusNoContent ))
487487 Expect (rec .Header ().Get ("Allow" )).To (Equal ("GET,PUT,DELETE,OPTIONS" ))
488488 })
489489
490490 It ("DELETEs" , func () {
491- req , err := http .NewRequest ("DELETE" , "/posts/1" , nil )
491+ req , err := http .NewRequest ("DELETE" , "/v1/ posts/1" , nil )
492492 Expect (err ).To (BeNil ())
493493 api .Handler ().ServeHTTP (rec , req )
494494 Expect (rec .Code ).To (Equal (http .StatusNoContent ))
@@ -497,7 +497,7 @@ var _ = Describe("RestHandler", func() {
497497
498498 It ("UPDATEs" , func () {
499499 reqBody := strings .NewReader (`{"posts": {"id": "1", "title": "New Title"}}` )
500- req , err := http .NewRequest ("PUT" , "/posts/1" , reqBody )
500+ req , err := http .NewRequest ("PUT" , "/v1/ posts/1" , reqBody )
501501 Expect (err ).To (BeNil ())
502502 api .Handler ().ServeHTTP (rec , req )
503503 Expect (rec .Code ).To (Equal (http .StatusNoContent ))
@@ -506,7 +506,7 @@ var _ = Describe("RestHandler", func() {
506506
507507 It ("UPDATEs as array" , func () {
508508 reqBody := strings .NewReader (`{"posts": [{"id": "1", "title": "New Title"}]}` )
509- req , err := http .NewRequest ("PUT" , "/posts/1" , reqBody )
509+ req , err := http .NewRequest ("PUT" , "/v1/ posts/1" , reqBody )
510510 Expect (err ).To (BeNil ())
511511 api .Handler ().ServeHTTP (rec , req )
512512 Expect (rec .Code ).To (Equal (http .StatusNoContent ))
@@ -581,20 +581,6 @@ var _ = Describe("RestHandler", func() {
581581 })
582582 })
583583
584- Context ("when prefixing routes" , func () {
585- It ("has correct Location when creating" , func () {
586- api := NewAPI ("v1" )
587- api .AddResource (Post {}, & fixtureSource {map [string ]* Post {}})
588- rec := httptest .NewRecorder ()
589- reqBody := strings .NewReader (`{"posts": [{"title": "New Post"}]}` )
590- req , err := http .NewRequest ("POST" , "/v1/posts" , reqBody )
591- Expect (err ).To (BeNil ())
592- api .Handler ().ServeHTTP (rec , req )
593- Expect (rec .Code ).To (Equal (http .StatusCreated ))
594- Expect (rec .Header ().Get ("Location" )).To (Equal ("/v1/posts/1" ))
595- })
596- })
597-
598584 Context ("marshal errors correctly" , func () {
599585 var (
600586 source * fixtureSource
0 commit comments