aicra/README.md

1.6 KiB
Raw Blame History

aicra: all-in-config REST API

Aicra is a self-working API coded in Go:

  • It allows anyone to create a fully featured REST API
  • it can be used in Go as a library, or as a proxy to launch external commands (e.g. php scripts)

It is based on the all-in-config idea, where you only have a configuration file, and your implementation and it works without no further work.

A working example is available here

changelog
  • human-readable json configuration
  • nested routes (i.e. /user/:id: and /user/post/:id:)
  • nested URL arguments (i.e. /user/:id: and /user/:id:/post/:id:)
  • useful http methods: GET, POST, PUT, DELETE
  • manage URL, query and body arguments:
    • multipart/form-data (variables and file uploads)
    • application/x-www-form-urlencoded
    • application/json
  • required vs. optional parameters with a default value
  • parameter renaming
  • generic authentication system (i.e. you can override the built-in one)
  • generic type check (i.e. implement custom types alongside built-in ones)
  • built-in types
    • any - wildcard matching all values
    • int - any number (e.g. float, int, uint)
    • string - any text
    • varchar(min, max) - any string with a length between min and max
    • <a> - array containing only elements matching a type
    • <a:b> - map containing only keys of type a and values of type b (a or b can be ommited)
  • generic controllers implementation (shared objects)
  • response interface