API With GO Buffalo in 2021: from zero to deploy

This page summarizes the projects mentioned and recommended in the original post on dev.to

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • secure

    HTTP middleware for Go that facilitates some quick security wins.

  • package actions import ( "project1/models" "github.com/gobuffalo/buffalo" "github.com/gobuffalo/envy" forcessl "github.com/gobuffalo/mw-forcessl" i18n "github.com/gobuffalo/mw-i18n" paramlogger "github.com/gobuffalo/mw-paramlogger" "github.com/unrolled/secure" "github.com/gobuffalo/buffalo-pop/v2/pop/popmw" contenttype "github.com/gobuffalo/mw-contenttype" "github.com/gobuffalo/x/sessions" "github.com/rs/cors" "github.com/gobuffalo/packr/v2" ) // ENV is used to help switch settings based on where the // application is being run. Default is "development". var ENV = envy.Get("GO_ENV", "development") var app *buffalo.App var T *i18n.Translator // App is where all routes and middleware for buffalo // should be defined. This is the nerve center of your // application. // // Routing, middleware, groups, etc... are declared TOP -> DOWN. // This means if you add a middleware to `app` *after* declaring a // group, that group will NOT have that new middleware. The same // is true of resource declarations as well. // // It also means that routes are checked in the order they are declared. // `ServeFiles` is a CATCH-ALL route, so it should always be // placed last in the route declarations, as it will prevent routes // declared after it to never be called. func App() *buffalo.App { if app == nil { app = buffalo.New(buffalo.Options{ Env: ENV, SessionStore: sessions.Null{}, PreWares: []buffalo.PreWare{ cors.Default().Handler, }, SessionName: "_project1_session", }) // Automatically redirect to SSL app.Use(forceSSL()) // Log request parameters (filters apply). app.Use(paramlogger.ParameterLogger) // Set the request content type to JSON app.Use(contenttype.Set("application/json")) // Wraps each request in a transaction. // c.Value("tx").(*pop.Connection) // Remove to disable this. app.Use(popmw.Transaction(models.DB)) app.GET("/", HomeHandler) app.GET("/todo/", TodoIndex) app.GET("/todo/add", TodoAdd) app.GET("/todo/{id}", TodoShow) // <--- MAKE SURE THIS IS AT BOTTOM OF LIST } return app } // translations will load locale files, set up the translator `actions.T`, // and will return a middleware to use to load the correct locale for each // request. // for more information: https://gobuffalo.io/en/docs/localization func translations() buffalo.MiddlewareFunc { var err error if T, err = i18n.New(packr.New("app:locales", "../locales"), "en-US"); err != nil { app.Stop(err) } return T.Middleware() } // forceSSL will return a middleware that will redirect an incoming request // if it is not HTTPS. "http://example.com" => "https://example.com". // This middleware does **not** enable SSL. for your application. To do that // we recommend using a proxy: https://gobuffalo.io/en/docs/proxy // for more information: https://github.com/unrolled/secure/ func forceSSL() buffalo.MiddlewareFunc { return forcessl.Middleware(secure.Options{ SSLRedirect: ENV == "production", SSLProxyHeaders: map[string]string{"X-Forwarded-Proto": "https"}, }) }

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • How to Implement Authorization in React JS

    3 projects | dev.to | 1 May 2024
  • Open Policy Agent

    8 projects | news.ycombinator.com | 12 Mar 2024
  • Implementing JWT Authentication in a Golang Application

    5 projects | dev.to | 30 Jan 2024
  • NMAP-formatter: convert NMAP results to HTML, CSV, JSON, graphviz (dot), SQLite

    4 projects | news.ycombinator.com | 26 Jan 2024
  • Nuxt authorization: How to implement fine-grained access control

    4 projects | dev.to | 15 Jan 2024