bones_api 1.0.6 copy "bones_api: ^1.0.6" to clipboard
bones_api: ^1.0.6 copied to clipboard

outdated

Bones_API - Simple and easy API framework, with routes and HTTP Server.

example/bones_api_example.dart

import 'package:bones_api/bones_api.dart';
import 'package:bones_api/src/bones_api_server.dart';

void main() async {
  var api = MyAPI();

  print(api);

  var r1 = await api.call(APIRequest.get('/service/base/foo'));
  print(r1);

  var r2 = await api
      .call(APIRequest.post('/service/base/foo', parameters: {'a': 1}));
  print(r2);

  var r3 = await api.call(APIRequest.get('/service/base/bar'));
  print(r3);

  // Start an APIServer with Hot Reload:
  var apiServer = APIServer(api, '*', 8088, hotReload: true);
  await apiServer.start();

  print('Running: $apiServer');
  print('URL: ${apiServer.url}');
}

class MyAPI extends APIRoot {
  MyAPI() : super('example', '1.0');

  @override
  Set<APIModule> loadModules() => {MyBaseModule()};
}

class MyBaseModule extends APIModule {
  MyBaseModule() : super('base');

  @override
  String? get defaultRouteName => '404';

  @override
  void configure() {
    routes.get('foo', (request) => APIResponse.ok('Hi[GET]!'));
    routes.post(
        'foo', (request) => APIResponse.ok('Hi[POST]! ${request.parameters}'));

    routes.any('time', (request) => APIResponse.ok(DateTime.now()));

    routes.any('404',
        (request) => APIResponse.notFound(payload: '404: ${request.path}'));
  }
}
27
likes
0
pub points
79%
popularity

Publisher

unverified uploader

Bones_API - Simple and easy API framework, with routes and HTTP Server.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

args, async_extension, collection, dart_spawner, hotreloader, logging, petitparser, reflection_factory, shelf

More

Packages that depend on bones_api