In a Postman collection imported from OpenAPI, why do request values look faked while saved examples do not?
answer
- The two sides do not default alike
- One side invents, the other copies
- Schema on requests, examples on examples
- schemaFaker sits behind the invented values
- Structurally valid, semantically meaningless payloads
basics
~10 sThe converter treats the two sides differently: requestParametersResolution defaults to Schema, so request values are faked from types, while exampleParametersResolution defaults to Example, so saved examples reuse the definition's own example values.
solid answer
~40 sThe import is **asymmetric by default**, and that asymmetry is the whole answer. On the request side, `requestParametersResolution` defaults to `Schema`, so the converter runs `schemaFaker` over the declared types and produces invented values — strings and numbers nobody wrote. On the example side, `exampleParametersResolution` defaults to `Example`, so the generated saved example reuses the values the definition actually supplies as examples. The result is a collection whose request body is plausible-looking fiction sitting next to a response body that is real documentation. Candidates who miss this either trust the faked request values as though somebody curated them, or dismiss the whole collection as fabricated and ignore the example side, which is genuinely carried over from the definition.
code
json · 4 lines{
"requestParametersResolution": "Schema",
"exampleParametersResolution": "Example"
}go deeper
Be ready to say the values sitting in a freshly imported request body were generated from the declared types, so they are placeholders. Do not treat them as real data.
Explain the asymmetry by name: request resolution defaults to the schema and fakes values, example resolution defaults to the definition's examples and copies them. Know that both are converter options you can change.
Show the operational consequence. A collection of faked bodies is not a smoke test, and you either fill it with real data or repoint the request-side resolution before anyone concludes the service is broken.
Own the upstream question: if imported collections are how teams first meet an API, the definition's example payloads become a product surface, and keeping them realistic is a standard someone has to hold.
## The asymmetry When a definition is converted into a collection, every generated request needs values in it — something in the body, something for each parameter — and every generated saved example needs a payload too. The converter fills both, but **not from the same place**, and the defaults are what make an imported collection confusing on first read. | Side of the request | Converter option | Default | Where its values come from | |---|---|---|---| | the request being sent | `requestParametersResolution` | `Schema` | **faked** from the declared types | | the saved example | `exampleParametersResolution` | `Example` | the **examples the definition supplies** | So the body you are about to send was invented by a generator, and the body shown as the expected reply was written by a human and carried across. Two payloads, side by side in the same item, with completely different provenance. ## What "faked from the schema" means The generator behind that default is controlled by the `schemaFaker` option. Working from the declared shape of a payload, it produces a value of the right kind for each field: something string-shaped where a string is declared, something numeric where a number is declared, a nested object where the shape nests. The output is structurally correct and semantically meaningless. That distinction matters more than it sounds: - **Structurally correct** means the request will usually serialise and often parse on the far side. It looks like a real call. - **Semantically meaningless** means the identifier in it refers to nothing, the amount is arbitrary, and the enum-ish string may be a value the domain never uses. - **No cross-field consistency** should be assumed: two fields that must agree in the real domain were generated independently. - **Nothing was reviewed.** No human approved these values; a type declaration was expanded mechanically. ## Why the example side is different The example side defaults the other way for a reason that is easy to state: **when a human has already written a realistic payload, use it.** Definitions commonly carry example payloads for responses precisely so that documentation renders something believable, and the converter treats that as better material than anything it could invent. Hence `exampleParametersResolution` defaulting to `Example` while the request side defaults to `Schema`. The two options are independent, so the behaviour is adjustable in both directions: 1. Point the request side at examples, and generated requests will prefer written example values where the definition supplies them. 2. Leave the defaults alone and treat every request value as a placeholder to overwrite before the call means anything. 3. Control whether values are generated at all through `schemaFaker`, which is the knob for the faking behaviour itself rather than for which source is preferred. ## Where this bites in practice - **Someone runs the imported collection as a smoke test.** The calls are well-formed and fail on business validation, and time is lost debugging a service that is behaving correctly against invented input. - **Someone reads a faked value as documentation.** A generated identifier gets copied into a ticket or a test fixture as though it were a real example from the API. - **Someone dismisses the collection wholesale.** Having noticed the fake request values, they assume the examples are fabricated too — but those came from the definition and are usually the most trustworthy content in the file. - **Someone commits the generated values.** The invented payloads become the team's de-facto sample data, drifting further from reality with every import. ## What to do about it - Treat a freshly imported request body as **a shape to fill in**, never as data. Its job is to show you which fields exist. - Read the saved examples as the definition's own material, because that is what they are — and if they are poor, fix them in the definition where every consumer benefits. - If your definitions carry good request examples, change the request-side resolution so the import uses them instead of faking. - Say the asymmetry out loud when handing the collection to someone else. "Requests are faked, examples are real" saves the next person the confusion you just went through. ## The short answer Request values are generated from the declared schema because `requestParametersResolution` defaults to `Schema`; example values are copied from the definition because `exampleParametersResolution` defaults to `Example`. Same import, same item, two different sources — and knowing which is which tells you exactly how much to trust each payload.
- A teammate runs the imported collection against staging and every call fails validation. What do you tell them?That the request bodies were faked from the declared types, not curated, so identifiers refer to nothing and values are arbitrary. The service is likely fine. Fill the bodies with real data, or point the request-side resolution at the definition's examples if it supplies good ones.
- If the faked request values are so weak, why does the converter default to producing them at all?Because a request has to contain something, and most definitions supply examples for responses far more consistently than for request payloads. Faking from the schema always yields a structurally complete body, which shows the caller every field that exists — a better default than an empty one.
- Should the generated saved examples be trusted more than the generated request bodies?Generally yes, because they were copied from the definition rather than invented, so a human wrote them for documentation purposes. They are only as good as the definition, though: if its examples are stale, the import faithfully carries stale content across.
It is like a form printed with dummy text already typed into the boxes, bound together with a worked sample answer copied from the real handbook: only one of the two was written by someone who knew the subject.
saying these in an interview costs you the question
- Assumes both sides of the item share one value source
- Treats faked request values as curated sample data
- Dismisses generated examples as invented too
- Says faked values guarantee the call will succeed
- Thinks the runtime fills request values at send time