- #4932 [API] Fix: Generated
uriTemplate
correctly include*
for explode query params - #4804 The description parameter of
@server
is now optional.
- #4679 Upgrade dependencies - October 2024
- #4424 Bump dependencies
- #4513 Adds HttpStream and JsonlStream models to to support streaming use-cases.
- #4322 Use user provided description of model if model has a status code property(detect it as an response envelope)
- #4139 Internals: Migrate to new api for declaring decorator implementation
- #4155 HotFix: Uri template not correctly built when using
@autoRoute
- #3909 Fix
HttpPart
not respecting explicit part name by always using the property name - #3933 Fix some diagnostic not showing the right message
- #3948 Update dependencies
-
#4046 API: Expose
properties: HttpProperty[]
on operation parameter and response which reference all the properties of interest(Body, statusCode, contentType, implicitBodyProperty, etc.) -
#3932
@route
can now take a uri template as defined by RFC-6570@route("files{+path}") download(path: string): void;
-
#3932 API deprecation:
HttpOperation#pathSegments
is deprecated. UseHttpOperation#uriTemplate
instead. -
#3932 Deprecated
@query({format: })
option. Use@query(#{explode: true})
instead ofform
ormulti
format. Previouslycsv
/simple
is the default now. Decorator is also expecting an object value now instead of a model. A deprecation warning with a codefix will help migrating.- @query({format: "form"}) select: string[]; + @query(#{explode: true}) select: string[];
- #3718 Dependency updates July 2024
- #3717 Allow overriding base operation verb
- #3676 Expose
getHttpPart
and types functions - #3732 Expose
model
property onHttpAuth
to retrieve original type used to define security scheme
-
#3737 Keep trailing slash when building http routes, this is breaking if you used to have
@route()
ending with/
.TypeSpec Before After @route("users/")
users
users/
@route("users")
users
users
on interface @route("users/")
and on op@route("addresses/")
users/addresses
users/addresses/
on interface @route("users/")
and on op@route("addresses")
users/addresses
users/addresses
- #3022 Update Flow Template to make use of the new array values
- #3401 Update dependencies - May 2024
-
#3342 Add new multipart handling. Using
@multipartBody
withHttpPart<Type, Options>
. See multipart docs for more information.op upload(@header contentType: "multipart/mixed", @multipartBody body: { name: HttpPart<string>; avatar: HttpPart<bytes>[]; }): void;
-
#3462 Use new compiler automatic
all
ruleset instead of explicitly provided one
- #3196 Fix password flow defining
authorizationUrl
instead oftokenUrl
- #3190 Fix
@path
param mapping when spreading a record in operation parameters - #3218 Fix:
@path
property shouldn't be applicableMetadata if the visibility containsRead
- #3169 Update dependencies
-
#2945 Empty model after removing metadata and applying visibility always results in "void" This means the following case have changed from returning
{}
to no bodyop b1(): {}; op b2(): {@visibility("none") prop: string}; op b3(): {@added(Versions.v2) prop: string};
Workaround: Use explicit
@body
op b1(): {@body _: {}}; op b2(): {@body _: {@visibility("none") prop: string}}; op b3(): {@body _: {@added(Versions.v2) prop: string}};
-
#2945 Implicit status code always 200 except if response is explicitly
void
op c1(): {@header foo: string}; // status code 200 (used to be 204)
Solution: Add explicit
@statusCode
op c1(): {@header foo: string, @statusCode _: 204}; op c1(): {@header foo: string, ...NoContent}; // or spread common model
-
#2945
@body
means this is the bodyThis change makes using
@body
mean this is the exact body and everything underneath will be included, including metadata properties. If metadata properties are present on the body, a warning will be logged.op a1(): {@body _: {@header foo: string, other: string} }; ^ warning header in a body, it will not be included as a header.
Use
@bodyRoot
if you want to only change where to resolve the body from.op a1(): {@bodyRoot _: {@header foo: string, other: string} };
-
#2945 Properties are not automatically omitted if everything was removed from metadata or visibility
op d1(): {headers: {@header foo: string}}; // body will be {headers: {}}
Solution: use
@bodyIgnore
op d1(): {@bodyIgnore headers: {@header foo: string}}; // body will be {headers: {}}
- #3027 Update dependencies
- #2948 Fix don't emit shared route error when verb don't match
- #2900 Update dependencies
- #2901 Add ability to sepcify authentication and different scopes per operation
- #2958 Validate that only one
@useAuth
decorator is applied to a type.
- 8ed1d82: Fix: OpenIDConnect types not exposed on the TypeScript types
Wed, 24 Jan 2024 05:46:53 GMT
- Fix:
@path
custom name not respected - Fix: Wrong route generated when path parameter is not alpha numeric(Either with a different name provided in
@path
or if the property name is not an identifier) - Migrate to new Internal/Public library definition
- Rename template parameters in preparation for named template argument instantiation.
- Update dependencies
Wed, 06 Dec 2023 19:40:58 GMT
- Add diagnostic when a namespace exists with routes, but no namespace is marked with
@service
.
Wed, 08 Nov 2023 00:07:17 GMT
TypeScript
usetypes
entry underexports
ofpackage.json
instead of legacytypesVersions
to provide the definition files- BREAKING CHANGE Dropped support for node 16, minimum node version is now 18
Wed, 11 Oct 2023 23:31:35 GMT
- Add support for
@returns
and@errors
doc comment tags. - Add support for status code ranges for http responses. Change to API Http responses can now also return a
HttpStatusCodeRange
object for their status codes - Emit error when multiple properties on a response model have the
@statusCode
decorator. - Update dependencies
Tue, 12 Sep 2023 21:47:11 GMT
- Deprecated
getRequestVisibility
. Added methodsgetDefaultVisibilityForVerb
andresolveRequestVisibility
. Use either depending on the situation. - Add validation step to check whether any operation references another operation with a route prefix defined on a parent container. This helps avoid unexpected route changes when using operation references.
- Avoid runtime errors when
OAuth2Auth
is given invalidOAuth2Flow
arguments
Tue, 08 Aug 2023 22:32:10 GMT
- Update doc for openapi developers
- Add collection format support: simple, form, ssv, tsv, pipes
Tue, 11 Jul 2023 22:06:00 GMT
- Add documentation on
@header
auto header name resolution from property name. - Support nested
@body
- Update dependencies
Tue, 06 Jun 2023 22:44:16 GMT
- Uptake doc comment changes
- Update decorators to use
valueof
- Update decorators signature to use
{}
instead ofobject
- Add signature for missing decorators
Wed, 10 May 2023 21:24:00 GMT
- Cleanup deprecated use
- No longer issues an error for multiple different responses for the same status code.
- Add
@sharedRoute
decorator for marking operations as sharing a route with other operations - Deprecate the
shared
option in the@route
decorator.@sharedRoute
is the new way to accomplish the same behavior. - Update dependencies
Fri, 14 Apr 2023 15:09:01 GMT
- Fix query format not accepting anything other than
csv
andmulti
Tue, 11 Apr 2023 18:49:17 GMT
- Breaking change
@header
and@query
no longer default theformat
tocsv
andmulti
respectively. A value must now be provided when the type is an array.
Mon, 13 Mar 2023 21:30:44 GMT
- Make canonical visibility configurable and default to none.
Fri, 03 Mar 2023 19:59:17 GMT
- Move core HTTP functionality from
@typespec/rest
into a new@typespec/http
library