This folder contains a Postman v2.1 collection and three environments covering the HTTP endpoints the MAUI client calls directly via HttpClient in ALPAMobile/Services/RestService.cs.
Endpoints reached through the NSwag-generated NuGet clients (ALPA.Services.FTDT.ApiClientNet7_0, Jumpseat.ApiClient, PilotComms.ApiClient.Net8, MobileMenu.ApiClient) are not included — those are owned by the backend team and should be exercised against their own OpenAPI/Swagger specs.
| File | Purpose |
|---|---|
ALPAMobile.postman_collection.json | All endpoints, grouped by API surface |
ALPAMobile-QA.postman_environment.json | DevEnv = true endpoints since PR 2181 / AB#2575 (gatewayapiqa / authapi) — what the app hits in Development mode |
ALPAMobile-Dev.postman_environment.json | Pre-AB#2575 dev gateway (gatewayapi / authapi); still the hardcoded host of DynamicContentApiClient |
ALPAMobile-Prod.postman_environment.json | Production endpoints (gateway / authsvc2) |
access_token into the bearerToken environment variable, so every other request picks it up via the collection-level Authorization: Bearer {{bearerToken}} header.| Variable | Dev value | Prod value |
|---|---|---|
baseUrl | https://gatewayapi.alpa.org | https://gateway.alpa.org |
baseUrlV2 | https://gatewayapi.alpa.org/v2 | https://gateway.alpa.org/v2 |
baseAuthUrl | https://authapi.alpa.org | https://authsvc2.alpa.org |
baseWebUrl | https://alpa.org | https://alpa.org |
bearerToken | (set by Auth request) | (set by Auth request) |
AlpaId, password | login credentials | login credentials |
alpaId | path-param placeholder for member/carrier/national requests | same |
email | for Member.GetAlpaNoByEmail | for Member.GetAlpaNoByEmail |
docSource, docPath | capture from a successful Doc.GetDocuments response | same |
{{var}}). Single braces ({var}) are sent to the server literally and produce errors like "The value '{airlineId}' is not valid." All URLs in this collection have been normalized to {{...}} — follow the same convention if you add a request.{paramName} segments in URLs are Postman path variables — fill them in the Path Variables table of each request before sending.ALPAMobile/Services/RestService.cs.The collection sets Authorization: Bearer {{bearerToken}} at the collection level, so every request inherits it. The following requests override that with auth: noauth because the mobile app calls them before login:
| Request | Why it's anonymous |
|---|---|
Auth ▸ AuthenticateUserViaJWT | Issues the token; can't require one |
App / Member / Misc ▸ Member.GetAlpaNoByEmail | Resolves email → AlpaId on the login screen, pre-token |
App / Member / Misc ▸ AppConfig.GetRelease | Runs from DataManager 2.5s after app launch, before any login |
App / Member / Misc ▸ Settings List | Public app-settings endpoint |
App / Member / Misc ▸ PageBanner List (anonymous) | Server returns the public banner subset without a token |
Every other request requires a valid bearer. If a request returns 401, run AuthenticateUserViaJWT first to refresh {{bearerToken}}.
PageBanner List is duplicated: the (authenticated) variant mirrors what the mobile client sends post-login (full personalized banner set), and the (anonymous) variant exercises the public path.
Treat the items below as expected failures until the underlying server work lands — they are not caused by the collection itself.
Logging ▸ LogEvent and LogEvents — consistent 500.App / Member / Misc ▸ PageBanner List (authenticated) and (anonymous) — 500 (anonymous variant also slow, ~14s).App / Member / Misc ▸ Settings List — 500.App / Member / Misc ▸ AppConfig.GetRelease — 500, ~15s (downstream appears unresponsive).Member.GetAlpaNoByEmail — set {{email}} to a real test user before sending.Member.GetUser, Member.C2AList — confirm the test AlpaId has member data in dev.All POST/PUT bodies in the collection are pre-filled with schema-correct shapes derived from ALPALogEvent.cs and the flight-search models. Replace the placeholder values (sample dates, IDs, payload strings) with realistic data before sending mutating requests.
The collection-level test asserts Response time < 10s. Slow endpoints (AppConfig.GetRelease, anonymous PageBanner List) fail this assertion in addition to returning 500. Raising the threshold would mask real regressions — leave it as-is and fix the upstream services.