plasmajs icon indicating copy to clipboard operation
plasmajs copied to clipboard

Resources for api routes - An alternative to APIRouter.

Open phenax opened this issue 7 years ago • 0 comments

Branch: dev_resources_api

An alternative to APIRouter.

API Possibilities

  1. Simple (Most consistent with the rest of the api)
<Resource name='posts'>
    <Action path='/' action={listPost} />
    <Action path='/add' method='POST' action={createPost} />
</Resource>

OR

  1. Method names as actions
// Class declaration
class ControllerClass extends BaseController {
    listPost() { /* ... */ }
    createPost() { /* ... */ }
}
// Usage
<Resource name='posts' controller={ControllerClass}>
    <Action path='/' action='listPost' />
    <Action path='/add' method='POST' action='createPost' />
</Resource>

OR

  1. Declaring stuff with decorators
// Class declaration
@resource('post')
class ControllerClass extends BaseController {

    @action('/')
    listPost() { /* ... */ }

    @action('/add', 'POST')
    createPost() { /* ... */ }
}
// Usage
<Resource controller={ControllerClass} />

phenax avatar Mar 16 '18 11:03 phenax