Package Exports
- @travetto/rest-model
 - @travetto/rest-model/__index__.ts
 
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@travetto/rest-model) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
RESTful Model Routes
RESTful support for generating APIs from Model classes.
Install: @travetto/rest-model
npm install @travetto/rest-model
# or
yarn add @travetto/rest-modelTo facilitate common RESTful patterns, the module exposes Data Modeling Support support in the form of ModelRoutes.
Code: ModelRoutes example
import { Inject } from '@travetto/di';
import { ModelCrudSupport } from '@travetto/model';
import { Controller } from '@travetto/rest';
import { ModelRoutes } from '@travetto/rest-model';
import { User } from './user';
@Controller('/user')
@ModelRoutes(User)
class UserController {
  @Inject()
  source: ModelCrudSupport;
}is a shorthand that is equal to:
Code: Comparable UserController, built manually
import { Inject } from '@travetto/di';
import { ModelCrudSupport } from '@travetto/model';
import { Path, Controller, Body, Get, Request, Delete, Post, Put } from '@travetto/rest';
import { User } from './user';
@Controller('/user')
class UserController {
  @Inject()
  service: ModelCrudSupport;
  @Get('')
  async getAllUser(req: Request) {
    return await this.service.list(User);
  }
  @Get(':id')
  async getUser(@Path() id: string) {
    return await this.service.get(User, id);
  }
  @Delete(':id')
  async deleteUser(@Path() id: string) {
    return await this.service.delete(User, id);
  }
  @Post('')
  async saveUser(@Body() user: User) {
    return await this.service.create(User, user);
  }
  @Put('')
  async updateUser(@Body() user: User) {
    return await this.service.update(User, user);
  }
}