Guide
Essentials
- Installation
- Introduction
- Context
- Payloads
Command Line
- CLI
- Initialize
- Generate
Directory Structure
- Tree
- Authentication
- Authorization
- Context
- Handlers
- Internal
- Middleware
- Models
Design File
- design.json
Models
- Models
Concerns
- Concerns
Examples
- TODO's
Meta
- Meet the Team
Models
Models are used throughout the api as payloads and responses. Payloads are sent from users to the api. Responses are sent from the api to users.
my-first-api
│ ...
│
│
│
│
│
└src
│
│
└models
│ │ index.ts
│
│
│
│
│
│
└...
Models are allowed to be organized into submodules and subdirectories, but each defined model must be exported directly from ./src/models/index.ts
. Only named exports and not default exports are allowed.
./src/models/foos/index.ts
import { RequestPayload, MalformedPayloadError } from 'design-first';
import { IsInt, Min } from 'class-validator';
export class Foo { ... }
export class ShowFooPayload {
constructor(props: RequestPayload) {
try {
this.fooID = parseInt(props.params.fooID);
} catch (e) {
throw new MalformedPayloadError("fooID must be an integer");
}
}
@IsInt()
@Min(0)
public fooID: number;
}
./src/models/index.ts
// note: all of your models should be exported, here
export * from './foos';
Caught a mistake or want to contribute to the documentation?
Edit this page on GitHub!