Commit c3a5cae

mo khan <mo@mokhan.ca>
2025-04-11 17:58:22
refactor: use content-type negotiation based on accept header
1 parent f54c779
Changed files (3)
pkg/web/server.go
@@ -3,7 +3,6 @@ package web
 import (
 	"net/http"
 
-	"github.com/google/jsonapi"
 	"github.com/xlgmokha/x/pkg/serde"
 	"gitlab.com/mokhax/sparkled/pkg/db"
 )
@@ -28,8 +27,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 	case "/sparkles.json":
 		switch r.Method {
 		case "GET":
-			w.Header().Set("Content-Type", jsonapi.MediaType)
-			serde.ToJSONAPI(w, s.db.All())
+			serde.ToHTTP(w, r, s.db.All())
 		}
 	default:
 		s.fileserver.ServeHTTP(w, r)
pkg/web/server_test.go
@@ -27,7 +27,7 @@ func TestServer(t *testing.T) {
 
 			assert.Equal(t, http.StatusOK, response.Code)
 
-			items, err := serde.FromJSONAPI[[]*domain.Sparkle](response.Body)
+			items, err := serde.FromJSON[[]*domain.Sparkle](response.Body)
 			require.NoError(t, err)
 
 			assert.Equal(t, 1, len(items))
go.mod
@@ -3,7 +3,6 @@ module gitlab.com/mokhax/sparkled
 go 1.24.0
 
 require (
-	github.com/google/jsonapi v1.0.0
 	github.com/oklog/ulid v1.3.1
 	github.com/stretchr/testify v1.10.0
 	github.com/xlgmokha/x v0.0.0-20250404223908-0b29f54f06e7
@@ -11,6 +10,7 @@ require (
 
 require (
 	github.com/davecgh/go-spew v1.1.1 // indirect
+	github.com/google/jsonapi v1.0.0 // indirect
 	github.com/pmezard/go-difflib v1.0.0 // indirect
 	gopkg.in/yaml.v2 v2.4.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect