func VersionsHandler(schemas *client.Schemas, versions ...string) http.Handler {
	return ApiHandler(schemas, http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
		apiContext := GetApiContext(r)

		collection := client.GenericCollection{
			Collection: client.Collection{
				Links: map[string]string{},
			},
			Data: []interface{}{},
		}

		for i, version := range versions {
			collection.Data = append(collection.Data, client.Resource{
				Id: version,
				Links: map[string]string{
					SELF: apiContext.UrlBuilder.Version(version),
				},
				Type: "apiVersion",
			})

			if i == len(versions)-1 {
				collection.Links[LATEST] = apiContext.UrlBuilder.Version(version)
			}
		}

		apiContext.Write(&collection)
	}))
}
Beispiel #2
0
func (s *Server) ListReplicas(rw http.ResponseWriter, req *http.Request) error {
	apiContext := api.GetApiContext(req)
	resp := client.GenericCollection{}
	resp.Data = append(resp.Data, s.Replica(apiContext))

	apiContext.Write(&resp)
	return nil
}