Informal list of possible future feature work in Juneau. Please feel free to add to this list with ideas and put (+1 userid) next to items you're interested in.
Overall
- Investigate OpenAPI 3 support. The Swagger API is currently at Swagger 2.0.
Proofread documentation. It would be good to clean up areas that are confusing.
juneau-marshall
- YAML support.
This is kind of big though. Essentially cloning the JSON serializers and parsers and converting them to use YAML syntax. - Other possible languages: BSON, Protobuf, Amazon Ion
- @JsonSchema validation support for all serializers and parsers.
This is also kind of big. Basically adding SERIALIZER_validating and PARSER_validating settings (disabled by default) that would allow automatic schema validation of input and output just like we do for the OpenAPI serializer and parser. - FreeMarker integration.
- Test @Header("*") using maps/beans and related annotations.
- Simplify @Body annotation by merging @Schema into it.
- Test RestRequest.getRequest() and @Request as an annotation.
- Document RestRequest.getRequest().
- Find references to JsonSerializer.Simple
juneau-examples-core
- Creating generic JSON objects
- Defining XML namespaces
juneau-rest-examples
- Packaging as WAR files (documentation or article?)
- Customizing OPTIONS pages
- Rendering form entry pages
- Using the ZipFileList response handler
- Implementing console-output pages in HTML
- Using configuration files
- Making a bean traversable
- Using the Queryable converter
- Sending raw output
- Retrieving raw input
- Accessing request query parameters
- Accessing request path variables
- Accessing request content
- Accessing request header values
- Accessing the path pattern remainder
- Creating ResourceGroup pages
- Using matchers to define multiple Java methods to the same path pattern
- Using the Remoteable API
- Sending a redirect request
- Changing the stylesheet used by the HTML serializer
- Using the Introspector API to invoke methods on Java objects through REST calls
- Customizing serializers and parsers at the method level
- Accessing config file values
- Accessing request query parameters on URL-Encoded FORM posts without triggering HTML body to be read
- Accessing localized messages
- Defining your own response handlers
- Guarding access to a servlet or method
- Handling servlet initialization errors
- Handling exceptions that occur during response processing
- Customizing logging
- Creating an ATOM feed
- Creating a REST API against a file system
- Creating a Docker REST API
- Creating a REST API for storing and retrieving images
- Creating a REST API for echoing requests
- Creating a Tumblr REST API
- Creating a Cloudant REST API
- Using onPreCall() to intercept requests before processing
- Using onPostCall() to intercept requests after processing
- Creating child resources programmatically
- Defining default request headers
- Defining default response headers
- Defining your own var-resolver variables
- Serving up static files inside the /htdocs embedded package
- Defining MIME types of files in the /htdocs folder using the createMimitypesFileTypeMap() method
- Defining the title and description of a servlet programmatically using getDescription() and getTitle().
- Setting properties programmatically using RestServlet.setProperty()
- Setting and saving config file properties
- Defining your own abstract subclass of RestServlet or RestServletDefault
- Adding GZip support
- Accessing environment variables in config files