End-Of-Life This update is only for >=2022.3, unity versions below will stay at 1.13.0.
Changed Updated netcoreserver library
New Added AdvancedCustomization to override the LowLevelServer, LowLevelSession easier. It also allows to get events for WebSocket (dis)connect.
1.13.0 (02.05.2024)
Announcement End-Of-Life: Last version that supports Unity 2020.X, next version will require Unity >=2022.3
New OAuth examples for Itch.IO and a generic OAuth for Keycloak and other implementations (Auth Code Flow)
1.12.1 (20.04.2024)
New Error message for incompatible Unity versions <= 2020.3.9
Fixed Increased compatibility with older Unity version (2020.3.10 - 2020.3.44)
1.12.0 (02.04.2024)
ChangedBreaking Removed obsolete methods (these have been deprecated for >1 year) (migration information)
ChangedMaybe Breaking CreateResponse().Body(..) will no longer overwrite the header, if it was set previously like CreateResponse().Header(..).Body()
New Added LastRedirectPath information for internal redirections
New Rest Server is now Unity 6 compatible
Fixed Fixed MimeType detection for StaticContentAutoEndpoint
1.11.1 (18.12.2023)
Fixed Handle corner case query parameter ?abc by adding abc as key in the corresponding collections (was a value before)
Fixed Handle internal errors outside the client endpoint implementation and log it
1.11.0 (17.10.2023)
New Added StreamingAsset Auto Endpoint which can act as a simple web server (more information).
Changed Added more Mime Types to the StaticContentAutoEndpoint.
1.10.0 (22.09.2023)
New Support for path parameters ( /path/{parameter}/ ) (more information).
1.9.1 (21.08.2023)
New mDNS example, shows how mDNS discovery could be used with the rest server
Changed Update to marketing materials
Changed Auto endpoints have a default root path of “/” and the attribute auto endpoint inspects the whole scene by default
Changed Rest server inspector includes a review link by default - reviews are important und this shouldn’t be very intrusive
Fixed Fixed profiling includes, dynamically include the Unity Profiling Core for older Unity templates
Fixed Extract mDNS and UniWebView examples for internal CI/CD
1.9.0 (01.08.2023)
Changed AttributeAutoEndpoint is synchronized by default now, which makes Unity interaction easier. This can be disabled for each Endpoint individually in the Attribute.
New Static Content Endpoint allows to serve static content (like html, css, js, etc.) easily via the inspector.
New Automatically choose a random port (activate via inspector).
New Allow listen interfaces other than localhost and list all available IPs.
New Added an example implementation of a reverse proxy
Changed More documentation
Fixed Minor quality of live bug fixes.
1.4.0 (24.08.2022)
New Visual Scripting Support (minimum requirements: Visual Scripting 1.7.8 and Unity 2021.3 LTS). This feature is optional.
New Add Auto Endpoints, which provide standard implementations for common endpoints.
New Simple interlock helper class, helps with preventing interruptions of long running actions (e.g. animations).
1.3.0 (31.05.2022)
Changed (Code migration possible) DefaultRequestHandlerImpl has been moved to the namespace RestServer.Helper.
Changed Samples have been moved to the homepage. They can be found here.
New Debug log which gives more insight for debugging. Helpful for deep troubleshooting or remote support. Can be turned on in the inspector.
New Added access log for every incoming request. Can be turned on in the inspector.
New Custom inspector for: showing when the server is running, starting/stopping the server and which endpoints have been registered.
New Enabled access to read the binary request data (useful for picture uploads).
Fixed Removed using var from code, therefore this package compiles under 2019 again.
1.2.0 (03.04.2022)
ChangedThreadingHelper#ExecuteSync does no longer return default in case timeout while waiting until the render thread finishes executing. A TimeoutException is raised instead. The default timeout is 1s an can be increased by setting a custom value on ThreadingHelper#ThreadingMillisecondsTimout .
Changed Deprecated SendGetResponse, SendErrorResponse, SendGetJsonResponse in favor of the more clearly named SendAsync* Variants. The method signatures didn’t change
NewNew Added a lot new response methods: SendAsyncGetJsonResponse, SendAsyncGetResponse, SendAsyncOkResponse, SendAsyncHeadResponse, SendAsyncTraceResponse, SendAsyncTraceResponse, SendAsyncErrorResponse. Additionally to new helper classes: HttpHeader, MimeType and HeaderBuilder.
New Added a ProfilerMarker (“RestServer.Update”) to Workloads (code that is executed through ThreadingHelper). Further information
New Test coverage is now ~90% (excluding the underlying NetCoreServer library). Further information
NewExecuteSync now catches any exception inside the workload and transmits these to the endpoint implementation.
New Exceptions inside workloads that are executed via ExecuteAsync are reported to the log. This behaviour can be overridden via RestServer.SpecialHandlers.AsynchronousExceptionHandler
New Many internal behaviours can be adjusted by providing a lambda implementation RestServer.SpecialHandlers. Further information
New Increased amount of overall documentation
New Authorisation can now easily be realised via RestServer.SpecialHandlers.AuthHandlerFurther information
Fixed JSON responses were sent with Content-Type: text/plain instead of application/json (Thanks Julien for reporting)
Fixed Removal of Regex endpoints via EndpointCollection.RemoveEndpont(). Regex endpoints are now matched by string comparing the pattern.
1.1.1 (19.03.2022)
Fixed Fix ExecuteAsync not executing
Fixed NullPointerException when using ExecuteAsync