Releases: go-fuego/fuego
v0.14.0: Going stronger ⚙️
v0.14 : Going stronger ⚙️
v0.14 was a lot of hard work for us maintainers, but a lot of new features are coming to Fuego. 🔥
Fuego's has been tested through an intensive test suite and also in prod last few months, with great success at my company! I think we can say we are production-ready.
I wanted to thank the maintainers team for everything, thank you all!
Feature highlights
- OpenAPI generation is now more complete accurate
- We added a lot of internal tests and fixed bugs
- We have the long-awaited multi-return feature (will describe this in a blog post)
- Validation annotations are now understood for generating the OpenAPI schema
- Errors can be declared globally to register standard 400, 401... errors
- Errors can be declared on a per-route basis
What's Changed
- Struct-Based route Registration by @EwenQuim in #93
- chore: deprecation notice for WithPort() by @dylanhitt in #110
- Read Binary body with application/octet-stream Content-Type header by @EwenQuim in #112
- docs: remove usage of WithPort from docs in favor of WithAddr by @dylanhitt in #114
- Default tags are based on groups + possibility to disable auto tags by @EwenQuim in #115
- FIX: middlewares guides typo by @dvordrova in #117
- ci: add golangci-lint by @dylanhitt in #116
- Feat/disable print openapi by @dylanhitt in #123
- chore: typo on TestWithoutStartupMessages test by @dylanhitt in #124
- Easier TLS setup by @redecs in #120
- Chore/server setup by @dylanhitt in #126
- ACME Server TLS example with Let's Encrypt and certmagic by @redecs in #125
- Ci/markdown lint by @dylanhitt in #138
- deps: bump gorilla/scheme to v1.4.1 by @dylanhitt in #139
- fix: revert back to the simple funcName style operationID by @dylanhitt in #135
- Zuplo sponsoring by @EwenQuim in #140
- Update Zuplo sponsorship by @AdrianMachado in #142
- chore: add justification for disabled markdownlint rules by @dylanhitt in #144
- fix: differentiate between array types and standard structs by @dylanhitt in #134
- OpenAPI default description is a Fuego Cheatsheet by @EwenQuim in #149
- Extras in their own module by @EwenQuim in #147
- Golden file testing by @EwenQuim in #148
- Multi return by @EwenQuim in #137
- Info fields by @EwenQuim in #151
- Errors can be declared globally and route per route by @EwenQuim in #150
Breaking changes
- Your OpenAPI will be changed significantly (but for the better, we pass a lot of linters and tests)
- Markdown package has been moved to its own module
github.com/go-fuego/fuego/extra/markdown
New Contributors
- @dvordrova made their first contribution in #117
- @redecs made their first contribution in #120
- @AdrianMachado made their first contribution in #142
Full Changelog: v0.13.4...v0.14.0
v0.13.0: Errors & Tags
Features highlights 🔥
- RFC 9457 is implemented : Fuego now uses the standard way to handle errors in an API!
- Groups Tags : only add a tag
Book
once for all your/books/*
routes! - Hide routes and groups from OpenAPI Spec (useful for HTML routes for example)
- decode YAML input
(net/http) *Server
is now an embedded field, making Fuego even closed from the standard library
What's Changed
- feat: add swagger ui handler in server by @rizerkrof in #57
- fix: Set body height to 100% of the viewport height by @mailbaoer in #58
- feat: add option for custom validator by @vladz in #65
- cors handling by @EwenQuim in #68
- feat: support decoding x-yaml content-type in ContextWithBody by @dylanhitt in #72
- docs: ContextWithBody clarification by @dylanhitt in #73
- Sets
WithAddr
option and pass int asWithPort
argument by @EwenQuim in #74 - Embed
(net/http) *Server
field in fuego Server by @EwenQuim in #75 - Exposes OutputOpenAPISpec method to generate directly the outputs without starting server by @EwenQuim in #77
- Hide group by @EwenQuim in #78
- Make Default OpenAPI handler public by @EwenQuim in #83
- Adds Cookie and Header methods to context by @EwenQuim in #84
- RFC 9457 implementation by @EwenQuim in #86
- Basic auth test by @EwenQuim in #88
- Adds coverage tracking to repository by @EwenQuim in #90
- Fixes error Content-Type by @EwenQuim in #89
- feat: add tags to the Server (i.e Group) level by @dylanhitt in #91
New Contributors
- @mailbaoer made their first contribution in #58
- @vladz made their first contribution in #65
Full Changelog: v0.12.0...v0.13.0
v0.12.0
Features
Fuego now uses an online OpenAPI UI by default. This make the binaries built with Fuego 10Mb lighter, with the drawback to not be able to use the OpenAPI UI when offline. You can activate offline OpenAPI UI (embedded in the binary) with the build tag openapi_ui_local
, see docs.
Making the binary size smaller was planned, but the idea of using StopLight Elements for the online UI was given to me by @danielgtaylor in his project Huma, a project similar to Fuego.
What's Changed
- Update ci/cd go version to 1.22 by @Kronopt in #52
- docs: adds custom serialization guide by @EwenQuim in #54
- OpenAPI UI : online (now the default) or embedded (optional build tag) by @EwenQuim in #55
- docs: fix text in link to LICENSE.txt by @qbit in #53
New Contributors
Full Changelog: v0.11.0...v0.12.0
v0.11.0
New Features 🔥
- Cookie OpenAPI param
fuego.Get(s, "/test", testController).
Cookie("my-cookie", "my description")
- Header OpenAPI param
fuego.Get(s, "/test", testController).
Header("my-header", "my description")
What's Changed
- feat: add generate controller cli by @rizerkrof in #39
- docs: add fuego social platforms by @hugoleborso in #41
- Add search to documentation & minor cleanup by @Jeremie-Chauvel in #42
- Fix video size on documentation home page by @Jeremie-Chauvel in #43
- Improve Doc homepage responsiveness for mobile by @Jeremie-Chauvel in #44
- Change to MIT license by @hugoleborso in #47
- Doc: Fix usage of
Use
for middleware example by @guerinoni in #50 - feature: add header and cookie to openapi schema by @kaazedev in #48
- renamed AddHeader, AddCookie, WithQueryParams to Header, Cookie, QueryParam by @EwenQuim in #51
Breaking Changes
The breaking changes are (and will always be) explicit (no silent breaking changes) and easy to change until Fuego hits 1.0
- renamed WithDescription to Description
- renamed WithSummary to Summary
- renamed WithQueryParam to QueryParam
- renamed SetDeprecated to Deprecated
New Contributors
- @Jeremie-Chauvel made their first contribution in #42
- @guerinoni made their first contribution in #50
- @kaazedev made their first contribution in #48
Full Changelog: v0.10.0...v0.11.0
v0.10.0
What's Changed
Features
- Supports context in InTransformer by @EwenQuim in #33
- Templ & Gomponents first class support by @EwenQuim in b90fb6b
- Use different contexts by @EwenQuim in #36
Fixes
Other
- Docusaurus Docs by @hugoleborso in #34
- Docs/init docusaurus by @hugoleborso in #35
- Demo : use templ by @EwenQuim in b53b591
- Improved test coverage by @EwenQuim in 2165a2b
- Adds tests to CI by @EwenQuim in 79ad952
Full Changelog: v0.9.0...v0.10.0
v0.8.0 The "Fuego" release 🔥
What's Changed
- Add per route middlewares by @rizerkrof in #28
- HTML Rendering by @EwenQuim in #29
- Renamed Op to Fuego everywhere by @EwenQuim in 0a56b23
- Markdown support by @EwenQuim in 121af76
- Group mux does not accepts trailing slashesby @EwenQuim in a20613a
- Pass any context from a controller to a
Ctx[any]
controller by @EwenQuim in 2fe3a13 - QueryParamInt/Bool methods by @EwenQuim in bfe4fd5
- Validation should return 400 on fail by @rizerkrof in #30
Full Changelog: v0.7.0...v0.8.0
v0.7: Templating 📃 and Auth 🔐
What's Changed
- feat: add generate openapi options by @rizerkrof in #18
- Base of security package by @EwenQuim in #21
- Do not cache on error by @EwenQuim in #22
- Base of templating engine by @EwenQuim in #23
- Grouping returns a sub-router by @EwenQuim in #24
New Contributors
- @rizerkrof made their first contribution in #18
Full Changelog: v0.6.1...v0.7.0