mirror of
https://github.com/restic/rest-server.git
synced 2025-10-19 07:33:21 +00:00
Implement amended API protocol v2
The version is now selected via the HTTP request header "Accept".
This commit is contained in:
parent
cd4d054887
commit
bf34e9d62d
2 changed files with 21 additions and 2 deletions
21
handlers.go
21
handlers.go
|
@ -254,11 +254,30 @@ func DeleteConfig(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
}
|
||||
|
||||
const (
|
||||
mimeTypeAPIV1 = "application/vnd.x.restic.rest.v1"
|
||||
mimeTypeAPIV2 = "application/vnd.x.restic.rest.v2"
|
||||
)
|
||||
|
||||
// ListBlobs lists all blobs of a given type in an arbitrary order.
|
||||
func ListBlobs(w http.ResponseWriter, r *http.Request) {
|
||||
if Config.Debug {
|
||||
log.Println("ListBlobs()")
|
||||
}
|
||||
|
||||
switch r.Header.Get("Accept") {
|
||||
case mimeTypeAPIV2:
|
||||
ListBlobsV2(w, r)
|
||||
default:
|
||||
ListBlobsV1(w, r)
|
||||
}
|
||||
}
|
||||
|
||||
// ListBlobsV1 lists all blobs of a given type in an arbitrary order.
|
||||
func ListBlobsV1(w http.ResponseWriter, r *http.Request) {
|
||||
if Config.Debug {
|
||||
log.Println("ListBlobsV1()")
|
||||
}
|
||||
fileType := pat.Param(r, "type")
|
||||
path, err := getPath(r, fileType)
|
||||
if err != nil {
|
||||
|
@ -305,6 +324,7 @@ func ListBlobs(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
|
||||
w.Header().Set("Content-Type", mimeTypeAPIV1)
|
||||
_, _ = w.Write(data)
|
||||
}
|
||||
|
||||
|
@ -365,6 +385,7 @@ func ListBlobsV2(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
|
||||
w.Header().Set("Content-Type", mimeTypeAPIV2)
|
||||
_, _ = w.Write(data)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue