> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

## 0.47.8

**`(fix):`** A request body declared `application/x-www-form-urlencoded` is now form-encoded
instead of being sent as a JSON document under an `application/json` header. Those
endpoints went through `execute_request`, whose `.json()` both serializes to JSON and
stamps the header, so neither the bytes nor the content type matched the declaration.

## 0.47.7

**`(fix):`** A JSON request body declared under a media type other than `application/json` - a
vendor type, or `application/merge-patch+json` - is now sent under that type instead
of `application/json`. `execute_request` calls reqwest's `.json()`, which stamps
`application/json` over whatever the endpoint declared, so those endpoints now take a
variant that sets the header and serializes the body identically. Emitted only when an
endpoint declares such a type, so an SDK that never does is unchanged.

## 0.47.6

**`(fix):`** An array query parameter declared `style: form` with `explode: false` is now sent as
one comma-joined value instead of a repeated key. The IR has always carried `explode`
and the Rust generator read it nowhere, so every array went out exploded regardless of
what the endpoint declared. An empty array still produces no parameter.

## 0.47.5

**`(fix):`** Basic auth credentials are now sent. An API whose only security scheme is basic auth
generated a client that applied NO credential at all: the client-wide auth path
applied an API key and a bearer token but had no basic branch, `username` and
`password` sat unread on the config, and the one `Authorization` header in the
generated client was gated on `config.token`, which such an API never sets. Only
per-endpoint auth routing handled basic auth.

## 0.47.4

**`(fix):`** A string field sent alongside a file in a multipart body is now written verbatim
instead of being JSON-serialized first. `serde_json::to_string` wrapped it in quotes
and those quotes reached the server as part of the value, so a 13-character caption
arrived as 15. Structured parts (objects, arrays, maps) still go as JSON; numbers and
booleans were never affected.

## 0.47.3

**`(fix):`** A raw-bytes request body is now sent under the content type the endpoint declares
instead of always `application/octet-stream`. The IR has always carried it on the
bytes body, and the C#, Python and TypeScript generators already stamped it; Rust
hard-coded the header in `execute_bytes_request`. An endpoint that declares no
content type still sends `application/octet-stream`.