Changelog
v2.6.0 Custom router implementation. Goyave is not using gorilla/mux anymore. The new router is twice as fast and uses about 3 times less memory. Now redirects to configured protocol if request scheme doesn't match. Added named routes . Added Route.GetFullURI()
and Route.BuildURL()
for dynamic URL generation. Added helper.IndexOfStr()
and helper.ContainsStr()
for better performance when using string slices. Moved from GoDoc to pkg.go.dev . Print errors to stderr. v2.5.0 Added an authentication system . Various optimizations. Various documentation improvements. Added dbMaxLifetime
configuration entry. Moved from Travis CI to Github Actions. Fixed a bug making duplicate log entries on error. Fixed a bug preventing language lines containing a dot to be retrieved. Fixed TestSuite.GetJSONBody()
not working with structs and slices. Added TestSuite.ClearDatabaseTables()
. Added Config.Has()
and Config.Register()
to check for the existence of a config entry and to allow custom config entries valdiation. Added Request.BearerToken()
. Added Response.HandleDatabaseError()
for easier database error handling and shorter controller handlers. v2.4.3 Improved string validation by taking grapheme clusters into consideration when calculating length. lang.LoadDefault
now correctly creates a fresh language map and clones the default en-US
language. This avoids the default language entries to be overridden permanently. v2.4.2 Don't override Content-Type
header when sending a file if already set. Fixed a bug with validation message placeholder :values
, which was mistakenly using the :value
placeholder. v2.4.1 Bundle default config and language in executable to avoid needing to deploy $GOROOT/pkg/mod/github.com/!system-!glitch/goyave/
with the application. v2.4.0 Added template rendring . Fixed PostgreSQL options not working. TestSuite.Middleware()
now has a more realistic behavior: the finalization step of the request life-cycle is now also executed. This may require your tests to be updated if those check the status code in the response. Added status handlers . v2.3.0 v2.2.1 Added domain
config entry. This entry is used for url generation, especially for the TLS redirect. Don't show port in TLS redirect response if ports are standard (80 for HTTP, 443 for HTTPS). v2.2.0 v2.1.0 filesystem.GetMIMEType
now detects css
, js
, json
and jsonld
files based on their extension. Added maintenance mode.
Can be toggled at runtime . The server can be started in maintenance mode using the maintenance
config option. (Defaults to false
) Added advanced array validation , with support for n-dimensional arrays.BETA Malformed request messages can now be localized. (malformed-request
and malformed-json
entries in locale.json
) Modified the validator to allow manual validation . v2.0.0 Documentation and README improvements. In the configuration:
The default value of dbConnection
has been changed to none
. The default value of dbAutoMigrate
has been changed to false
. Added request data accessors . Some refactoring and package renaming have been done to better respect the Go conventions.
The helpers
package have been renamed to helper
The server now shuts down when it encounters an error during startup. New validation.GetFieldType
function. Config and Lang are now protected with a sync.RWMutex
to avoid data races in multi-threaded environments. Greatly improve concurrency. Config can now be reloaded manually. Added the Trim
middleware. goyave.Response
now implements http.ResponseWriter
.
All writing functions can now return an error. Added the NativeHandler
compatibility layer. Fixed a bug preventing the static resources handler to find index.html
if a directory with a depth of one was requested without a trailing slash. Now panics when calling Start()
while the server is already running.