To be released.
Released on May 25, 2018.
Became ready for the Nirum 0.4.0 compiler. Instances of service classes generated by the compiler older than the version 0.4.0 is supported through
LegacyWsgiApp
. Note that the constructor ofWsgiApp
detects which version of compiler is the given service object generated from, and if it's older than 0.4.0 automatically returns an instance ofLegacyWsgiApp
instead ofWsgiApp
, for backward compatibility.An
400 Bad Request
error response for invalid method arguments became to have a more field namederrors
which contains one or more errors. Its format is like:{ "message": "There are invalid arguments.", "errors": [ {"path": ".author.name", "message": "Expected a string."}, {"path": ".tags", "message": "Expected an array."} ] }
WsgiApp
had been an old-style class in Python 2. It's now a new-style class. No change on Python 3 (since there's no old-style class in Python 3.)Added
MethodArgumentError
to store multiple errors during deserialization of method arguments.WsgiApp.error()
andWsgiApp.make_error_response()
methods became able to take extra keyword arguments to extend the result JSON object.
Released on March 20, 2018.
- Fixed a runtime
TypeError
that had been raised when a parameter corresponding to a variable for a query string in@http-resource
annotation's path has an optional type. [#251 by Chang-soo Han]
Released on March 20, 2018.
- Fixed a runtime
re.error
(sre_constants.error
) that had been raised when a variable name for a query string has one or more hyphens in@http-resource
annotation'spath
. [#250 by Chang-soo Han]
Released on February 4, 2018.
- Made parameters having an optional type possible to be omitted. [#205]
- Added method dispatching by querystring pattern
e.g.,
@http-resource(method="GET", path="/users?from={from}&to={to}")
. [#130] - Added basic method dispatching by path pattern (URI template) through
http-resource
annotation, e.g.,@http-resource(method="GET", path="/users/{login}/works/{work-id}/")
. [#130] - Added
allowed_origins
andallowed_headers
options for CORS toWsgiApp
constructor. It supports simple wildcard (*
) pattern syntax as well. - Added
AnnotationError
,NoJsonError
, andServiceMethodError
exceptions. - Since returning a disallowed value which does not match to the return type
is the fault the server-side made, the HTTP status code for the case became
500 Internal Server Error
instead of400 Bad Request
. Also now it writes logs usinglogging
module. - For the mistakes returning
None
from a method having non-null return type, now it became to show a more readable and debug-friendly message with a proper response instead of uncaught Python exception. WsgiApp.url_map
attribute was gone./ping/
resource was gone.- Fixed
nirum-server
command able to import a Python module/package from the current working directory (.
; CWD).
Released on July 10, 2017.