@@ -264,12 +264,12 @@ var _ = Describe("RestHandler", func() {
264
264
"author" : map [string ]interface {}{
265
265
"id" : "1" ,
266
266
"type" : "users" ,
267
- "resource" : "/posts/1/author" ,
267
+ "resource" : "/v1/ posts/1/author" ,
268
268
},
269
269
"comments" : map [string ]interface {}{
270
270
"ids" : []interface {}{"1" },
271
271
"type" : "comments" ,
272
- "resource" : "/posts/1/comments" ,
272
+ "resource" : "/v1/ posts/1/comments" ,
273
273
},
274
274
},
275
275
}
@@ -295,12 +295,12 @@ var _ = Describe("RestHandler", func() {
295
295
"links" : map [string ]interface {}{
296
296
"author" : map [string ]interface {}{
297
297
"type" : "users" ,
298
- "resource" : "/posts/2/author" ,
298
+ "resource" : "/v1/ posts/2/author" ,
299
299
},
300
300
"comments" : map [string ]interface {}{
301
301
"ids" : []interface {}{},
302
302
"type" : "comments" ,
303
- "resource" : "/posts/2/comments" ,
303
+ "resource" : "/v1/ posts/2/comments" ,
304
304
},
305
305
},
306
306
}
@@ -313,17 +313,17 @@ var _ = Describe("RestHandler", func() {
313
313
"links" : map [string ]interface {}{
314
314
"author" : map [string ]interface {}{
315
315
"type" : "users" ,
316
- "resource" : "/posts/3/author" ,
316
+ "resource" : "/v1/ posts/3/author" ,
317
317
},
318
318
"comments" : map [string ]interface {}{
319
319
"ids" : []interface {}{},
320
320
"type" : "comments" ,
321
- "resource" : "/posts/3/comments" ,
321
+ "resource" : "/v1/ posts/3/comments" ,
322
322
},
323
323
},
324
324
}
325
325
326
- api = NewAPI ("" )
326
+ api = NewAPI ("v1 " )
327
327
api .AddResource (Post {}, source )
328
328
api .AddResource (User {}, & userSource {})
329
329
api .AddResource (Comment {}, & commentSource {})
@@ -332,7 +332,7 @@ var _ = Describe("RestHandler", func() {
332
332
})
333
333
334
334
It ("GETs collections" , func () {
335
- req , err := http .NewRequest ("GET" , "/posts" , nil )
335
+ req , err := http .NewRequest ("GET" , "/v1/ posts" , nil )
336
336
Expect (err ).To (BeNil ())
337
337
api .Handler ().ServeHTTP (rec , req )
338
338
Expect (rec .Code ).To (Equal (http .StatusOK ))
@@ -345,7 +345,7 @@ var _ = Describe("RestHandler", func() {
345
345
})
346
346
347
347
It ("GETs single objects" , func () {
348
- req , err := http .NewRequest ("GET" , "/posts/1" , nil )
348
+ req , err := http .NewRequest ("GET" , "/v1/ posts/1" , nil )
349
349
Expect (err ).To (BeNil ())
350
350
api .Handler ().ServeHTTP (rec , req )
351
351
Expect (rec .Code ).To (Equal (http .StatusOK ))
@@ -358,7 +358,7 @@ var _ = Describe("RestHandler", func() {
358
358
})
359
359
360
360
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 )
362
362
Expect (err ).To (BeNil ())
363
363
api .Handler ().ServeHTTP (rec , req )
364
364
Expect (rec .Code ).To (Equal (http .StatusOK ))
@@ -371,31 +371,31 @@ var _ = Describe("RestHandler", func() {
371
371
})
372
372
373
373
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 )
375
375
Expect (err ).ToNot (HaveOccurred ())
376
376
api .Handler ().ServeHTTP (rec , req )
377
377
Expect (rec .Code ).To (Equal (http .StatusOK ))
378
378
Expect (rec .Body .Bytes ()).To (MatchJSON (`{"data": {"id": "1", "name": "Dieter", "type": "users"}}` ))
379
379
})
380
380
381
381
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 )
383
383
Expect (err ).ToNot (HaveOccurred ())
384
384
api .Handler ().ServeHTTP (rec , req )
385
385
Expect (rec .Code ).To (Equal (http .StatusOK ))
386
386
Expect (rec .Body .Bytes ()).To (MatchJSON (`{"data": [{"id": "1", "value": "This is a stupid post!", "type": "comments"}]}` ))
387
387
})
388
388
389
389
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 )
391
391
Expect (err ).ToNot (HaveOccurred ())
392
392
api .Handler ().ServeHTTP (rec , req )
393
393
Expect (rec .Code ).To (Equal (http .StatusNotFound ))
394
394
Expect (rec .Body .Bytes ()).ToNot (BeEmpty ())
395
395
})
396
396
397
397
It ("404s" , func () {
398
- req , err := http .NewRequest ("GET" , "/posts/23" , nil )
398
+ req , err := http .NewRequest ("GET" , "/v1/ posts/23" , nil )
399
399
Expect (err ).To (BeNil ())
400
400
api .Handler ().ServeHTTP (rec , req )
401
401
Expect (rec .Code ).To (Equal (http .StatusNotFound ))
@@ -405,11 +405,11 @@ var _ = Describe("RestHandler", func() {
405
405
406
406
It ("POSTSs new objects" , func () {
407
407
reqBody := strings .NewReader (`{"posts": [{"title": "New Post"}]}` )
408
- req , err := http .NewRequest ("POST" , "/posts" , reqBody )
408
+ req , err := http .NewRequest ("POST" , "/v1/ posts" , reqBody )
409
409
Expect (err ).To (BeNil ())
410
410
api .Handler ().ServeHTTP (rec , req )
411
411
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" ))
413
413
var result map [string ]interface {}
414
414
Expect (json .Unmarshal (rec .Body .Bytes (), & result )).To (BeNil ())
415
415
Expect (result ).To (Equal (map [string ]interface {}{
@@ -421,12 +421,12 @@ var _ = Describe("RestHandler", func() {
421
421
"links" : map [string ]interface {}{
422
422
"author" : map [string ]interface {}{
423
423
"type" : "users" ,
424
- "resource" : "/posts/4/author" ,
424
+ "resource" : "/v1/ posts/4/author" ,
425
425
},
426
426
"comments" : map [string ]interface {}{
427
427
"ids" : []interface {}{},
428
428
"type" : "comments" ,
429
- "resource" : "/posts/4/comments" ,
429
+ "resource" : "/v1/ posts/4/comments" ,
430
430
},
431
431
},
432
432
},
@@ -435,7 +435,7 @@ var _ = Describe("RestHandler", func() {
435
435
436
436
It ("POSTSs new objects with trailing slash automatic redirect enabled" , func () {
437
437
reqBody := strings .NewReader (`{"posts": [{"title": "New Post"}]}` )
438
- req , err := http .NewRequest ("POST" , "/posts/" , reqBody )
438
+ req , err := http .NewRequest ("POST" , "/v1/ posts/" , reqBody )
439
439
Expect (err ).To (BeNil ())
440
440
api .SetRedirectTrailingSlash (true )
441
441
api .Handler ().ServeHTTP (rec , req )
@@ -444,7 +444,7 @@ var _ = Describe("RestHandler", func() {
444
444
445
445
It ("POSTSs new objects with trailing slash automatic redirect disabled" , func () {
446
446
reqBody := strings .NewReader (`{"posts": [{"title": "New Post"}]}` )
447
- req , err := http .NewRequest ("POST" , "/posts/" , reqBody )
447
+ req , err := http .NewRequest ("POST" , "/v1/ posts/" , reqBody )
448
448
Expect (err ).To (BeNil ())
449
449
api .SetRedirectTrailingSlash (false )
450
450
api .Handler ().ServeHTTP (rec , req )
@@ -453,7 +453,7 @@ var _ = Describe("RestHandler", func() {
453
453
454
454
It ("POSTSs multiple objects" , func () {
455
455
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 )
457
457
Expect (err ).To (BeNil ())
458
458
api .Handler ().ServeHTTP (rec , req )
459
459
Expect (rec .Code ).To (Equal (http .StatusInternalServerError ))
@@ -463,7 +463,7 @@ var _ = Describe("RestHandler", func() {
463
463
464
464
It ("PUTSs multiple objects" , func () {
465
465
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 )
467
467
Expect (err ).To (BeNil ())
468
468
api .Handler ().ServeHTTP (rec , req )
469
469
Expect (rec .Code ).To (Equal (http .StatusInternalServerError ))
@@ -472,23 +472,23 @@ var _ = Describe("RestHandler", func() {
472
472
})
473
473
474
474
It ("OPTIONS on collection route" , func () {
475
- req , err := http .NewRequest ("OPTIONS" , "/posts" , nil )
475
+ req , err := http .NewRequest ("OPTIONS" , "/v1/ posts" , nil )
476
476
api .Handler ().ServeHTTP (rec , req )
477
477
Expect (err ).To (BeNil ())
478
478
Expect (rec .Code ).To (Equal (http .StatusNoContent ))
479
479
Expect (rec .Header ().Get ("Allow" )).To (Equal ("GET,POST,OPTIONS" ))
480
480
})
481
481
482
482
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 )
484
484
api .Handler ().ServeHTTP (rec , req )
485
485
Expect (err ).To (BeNil ())
486
486
Expect (rec .Code ).To (Equal (http .StatusNoContent ))
487
487
Expect (rec .Header ().Get ("Allow" )).To (Equal ("GET,PUT,DELETE,OPTIONS" ))
488
488
})
489
489
490
490
It ("DELETEs" , func () {
491
- req , err := http .NewRequest ("DELETE" , "/posts/1" , nil )
491
+ req , err := http .NewRequest ("DELETE" , "/v1/ posts/1" , nil )
492
492
Expect (err ).To (BeNil ())
493
493
api .Handler ().ServeHTTP (rec , req )
494
494
Expect (rec .Code ).To (Equal (http .StatusNoContent ))
@@ -497,7 +497,7 @@ var _ = Describe("RestHandler", func() {
497
497
498
498
It ("UPDATEs" , func () {
499
499
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 )
501
501
Expect (err ).To (BeNil ())
502
502
api .Handler ().ServeHTTP (rec , req )
503
503
Expect (rec .Code ).To (Equal (http .StatusNoContent ))
@@ -506,7 +506,7 @@ var _ = Describe("RestHandler", func() {
506
506
507
507
It ("UPDATEs as array" , func () {
508
508
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 )
510
510
Expect (err ).To (BeNil ())
511
511
api .Handler ().ServeHTTP (rec , req )
512
512
Expect (rec .Code ).To (Equal (http .StatusNoContent ))
@@ -581,20 +581,6 @@ var _ = Describe("RestHandler", func() {
581
581
})
582
582
})
583
583
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
-
598
584
Context ("marshal errors correctly" , func () {
599
585
var (
600
586
source * fixtureSource
0 commit comments