The haau3 platform API is in preview: it may change as we build, usually to add features or improve performance.
429 or a 5xx, gives typed errors that never print a response body, follows a
FHIR search’s pages, and sends several requests as one batch.
All three are MIT licensed. Each runs on a server only, and refuses to start in a browser, where an
API key would be public. Every operation’s page in the API reference shows its
call in each language beside the curl command.
Install
Authenticate
Create an API key on platform.haau3.com (see Authentication). Each SDK reads it fromHAAU3_API_KEY, or takes it as an
option. Make one client and reuse it: it holds a pool of connections.
AsyncHaau3, with the same methods awaited, on asyncio and on trio.
A first call
@types/fhir’s types in TypeScript (exported
as fhir4), plain dicts typed with TypedDicts from HL7’s R4 schema in Python, and structs
generated from the same schema in Go’s fhir package. FHIR elements are optional, so Python reads them with .get() and Go
holds each as a pointer. The other services’ answers have the API’s own types.
One call per service
api.md lists every method by service, with its request and its page in the API
reference: TypeScript,
Python and
Go.
Errors
unreadable. Errors lists every status the API answers.
Request ids and timing
Paging
Each SDK follows a FHIR search’snext links on the client’s own host, one page at a time, or one
resource at a time across every page:
limit and offset instead, and answer with a total.
Several requests in one
A batch sends several operations of the FHIR base as one request, and each gets its own result, in the order given:$reconcile-medications.
Any request
Each SDK sends a request as you give it and returns what the API answered, whatever the status:Options
Every option has a default:
A call can set its own time and retries too. A retry waits a short, growing interval, or what the
API’s
Retry-After header says when that is 60 seconds or less. A longer one fails at once, carrying it. The API key is sent only to the base URL’s host. Set
HAAU3_BASE_URL to run code you have not changed against a stand-in API of your own.
Frameworks and testing
Each README covers its own language’s frameworks and tests:- TypeScript: any runtime’s
fetchoptions, such as a proxy in Node or Next.js’s caching. - Python: FastAPI, Django and Flask, and testing your code.
- Go: net/http and Gin, and testing your code.
Versions
Each SDK is0.y.z while the API is in preview: a minor release may change what a method takes or
answers, and a patch release never does. Each repository’s CHANGELOG.md lists every release, and
a release that takes a new version of the API’s spec names that version.