Initial working server/generator
This commit is contained in:
parent
58cfc5d312
commit
b75730146e
4 changed files with 69 additions and 0 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
/spaceapi-schema.json
|
||||||
|
/pkg/spaceapi/
|
|
@ -1,2 +1,8 @@
|
||||||
# spaceapi
|
# spaceapi
|
||||||
|
|
||||||
|
# Build/Use
|
||||||
|
|
||||||
|
```
|
||||||
|
go generate
|
||||||
|
go run cmd/server.go
|
||||||
|
```
|
||||||
|
|
46
cmd/server.go
Normal file
46
cmd/server.go
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
"oko-spaceapi/pkg/spaceapi"
|
||||||
|
)
|
||||||
|
|
||||||
|
//go:generate ../generate-spaceapi-types.sh
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
definition := spaceapi.Root{
|
||||||
|
// TODO: Fill up with stuff
|
||||||
|
ApiCompatibility: []string{"14"},
|
||||||
|
Links: []*spaceapi.LinksItems{
|
||||||
|
{
|
||||||
|
Description: "Out main website",
|
||||||
|
Name: "website",
|
||||||
|
Url: "https://okoyono.de",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Space: "økoyono",
|
||||||
|
Url: "https://okoyono.de/",
|
||||||
|
Contact: &spaceapi.Contact{
|
||||||
|
Email: "contact@okoyono.de",
|
||||||
|
},
|
||||||
|
Location: &spaceapi.Location{
|
||||||
|
Address: "",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
json, err := definition.MarshalJSON()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = http.ListenAndServe(":8080", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
w.Header().Set("Content-Type", "application/json")
|
||||||
|
_, err := w.Write(json)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}
|
15
generate-spaceapi-types.sh
Executable file
15
generate-spaceapi-types.sh
Executable file
|
@ -0,0 +1,15 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
script="$(realpath "${BASH_SOURCE[-1]}")"
|
||||||
|
path="$(dirname "$script")"
|
||||||
|
|
||||||
|
cd $path
|
||||||
|
|
||||||
|
wget -O spaceapi-schema.json https://raw.githubusercontent.com/SpaceApi/schema/master/14.json
|
||||||
|
go install github.com/a-h/generate/cmd/schema-generate@latest
|
||||||
|
mkdir -p pkg/spaceapi
|
||||||
|
~/go/bin/schema-generate -o pkg/spaceapi/spaceapi.go -p spaceapi spaceapi-schema.json
|
||||||
|
rm spaceapi-schema.json
|
||||||
|
|
||||||
|
# TODO: Do it inline
|
||||||
|
# https://github.com/a-h/generate/blob/master/cmd/schema-generate/main.go
|
Loading…
Reference in a new issue