func main() { port := 31415 api := api2go.NewAPIWithResolver("v0", &resolver.RequestURL{Port: port}) userStorage := storage.NewUserStorage() chocStorage := storage.NewChocolateStorage() api.AddResource(model.User{}, resource.UserResource{ChocStorage: chocStorage, UserStorage: userStorage}) api.AddResource(model.Chocolate{}, resource.ChocolateResource{ChocStorage: chocStorage, UserStorage: userStorage}) fmt.Printf("Listening on :%d", port) handler := api.Handler().(*httprouter.Router) // It is also possible to get the instance of julienschmidt/httprouter and add more custom routes! handler.GET("/hello-world", func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { fmt.Fprint(w, "Hello World!\n") }) http.ListenAndServe(fmt.Sprintf(":%d", port), handler) }
func main() { marshalers := map[string]api2go.ContentMarshaler{ "application/vnd.api+json": PrettyJSONContentMarshaler{}, } api := api2go.NewAPIWithMarshalers("v0", "http://localhost:31415", marshalers) userStorage := storage.NewUserStorage() chocStorage := storage.NewChocolateStorage() api.AddResource(model.User{}, resource.UserResource{ChocStorage: chocStorage, UserStorage: userStorage}) api.AddResource(model.Chocolate{}, resource.ChocolateResource{ChocStorage: chocStorage, UserStorage: userStorage}) fmt.Println("Listening on :31415") handler := api.Handler().(*httprouter.Router) // It is also possible to get the instance of julienschmidt/httprouter and add more custom routes! handler.GET("/hello-world", func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { fmt.Fprint(w, "Hello World!\n") }) http.ListenAndServe(":31415", handler) }
r *mux.Router api *api2go.API rec *httptest.ResponseRecorder ) BeforeSuite(func() { r = mux.NewRouter() router = New(r) api = api2go.NewAPIWithRouting( "api", api2go.NewStaticResolver("/"), api2go.DefaultContentMarshalers, router, ) userStorage := storage.NewUserStorage() chocStorage := storage.NewChocolateStorage() api.AddResource(model.User{}, resource.UserResource{ChocStorage: chocStorage, UserStorage: userStorage}) api.AddResource(model.Chocolate{}, resource.ChocolateResource{ChocStorage: chocStorage, UserStorage: userStorage}) }) BeforeEach(func() { log.SetOutput(ioutil.Discard) rec = httptest.NewRecorder() }) Context("CRUD Tests", func() { It("will create a new user", func() { reqBody := strings.NewReader(`{"data": [{"attributes": {"username": "******"}, "id": "1", "type": "users"}]}`) req, err := http.NewRequest("POST", "/api/users", reqBody) Expect(err).To(BeNil())