build design your backend
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
@rster/builder
is a package of the @rster
project. It is build on top of the basic rster api to make the definition of your api easier. It does type-checking for you. This is better for security reasons and you will save a lot of time and effort. Find tutorials and documentation on the rster website. The package is available on npm.
rster repository · rster package on npm · rster documentation
import { api, module, method } from "@rster/builder";
import { undefinedType, string, array, object, number } from "@rster/types";
import "@rster/worker-express";
import express from "express";
const users: {
name: string;
age: number;
}[] = [];
const API = api(
"api",
["a simple demo api"],
{
users: module(
"users",
["module to handle users"],
{},
{
create: method(
"create",
["create a user"],
{
expectBody: {
name: { required: true, type: string() },
age: { required: true, type: number() },
},
returns: undefinedType(),
},
"/users",
"post",
({ age, name }) => {
users.push({ age, name });
}
),
list: method(
"list",
["list users"],
{
returns: array(
object({
name: { type: string(), required: true },
age: { type: number(), required: true },
})
),
},
"/users",
"get",
() => users
),
}
),
},
{}
);
const rster = API.rest();
const app = express();
app.use(rster.express());
app.listen(3000, () => {
console.log("listening on port 3000");
});
More examples on the rster website
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)Distributed under the BSD-3-Clause License. See LICENSE
for more information.
Project Link: https://github.com/nsc-de/rster/tree/master/packages/authorization
Generated using TypeDoc