A Library to create RESTFul APIs with Typescript
npm install typescript-rest
!Master Workflow



It can be used to define your APIs using decorators.
Table of Contents
- REST Services for Typescript
- Installation
- Configuration
- Basic Usage
- Using with an IoC Container
- Documentation
- Boilerplate Project
This library only works with typescript. Ensure it is installed:
``bash`
npm install typescript -g
To install typescript-rest:
`bash`
npm install typescript-rest --save
Typescript-rest requires the following TypeScript compilation options in your tsconfig.json file:
`typescript`
{
"compilerOptions": {
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"target": "es6" // or anything newer like esnext
}
}
`typescript
import * as express from "express";
import {Server, Path, GET, PathParam} from "typescript-rest";
@Path("/hello")
class HelloService {
@Path(":name")
@GET
sayHello( @PathParam('name') name: string ): string {
return "Hello " + name;
}
}
let app: express.Application = express();
Server.buildServices(app);
app.listen(3000, function() {
console.log('Rest Server listening on port 3000!');
});
`
That's it. You can just call now:
``
GET http://localhost:3000/hello/joe
Install the IoC container and the serviceFactory for the IoC Container
`bash`
npm install typescript-rest --save
npm install typescript-ioc --save
npm install typescript-rest-ioc --save
Then add a rest.config file in the root of your project:
`json`
{
"serviceFactory": "typescript-rest-ioc"
}
And you can use Injections, Request scopes and all the features of the IoC Container. It is possible to use it with any other IoC Container, like Inversify.
Example:
`typescript
class HelloService {
sayHello(name: string) {
return "Hello " + name;
}
}
@Path("/hello")
class HelloRestService {
@Inject
private helloService: HelloService;
@Path(":name")
@GET
sayHello( @PathParam('name') name: string): string {
return this.sayHello(name);
}
}
``
Check our documentation.
You can check this project to get started.