🚀 Fast, intuitive, and powerful configuration-driven engine for faster and easier REST development
Go to file
Adrien Marquès 5bd9e2f688 add readme 2018-05-30 17:01:16 +02:00
checker moved data parser into 'request_data' + created internal lib to parse multipart inside 'internal/multipart' + added default type 'any' + more things... 2018-05-29 15:43:09 +02:00
config removed from /internal directory 2018-05-30 09:02:08 +02:00
multipart removed from /internal directory 2018-05-30 09:02:08 +02:00
.gitignore Init() now takes a TypeRegistry as 2nd arg, if NIL, use default settings (./types/*.so)" 2018-05-24 15:54:36 +02:00
LICENSE first commit 2018-05-19 12:04:45 +02:00
README.md add readme 2018-05-30 17:01:16 +02:00
errors.go created initialiser + request builder (which supports form-data, urlencoded, json) 2018-05-21 12:02:24 +02:00
install-default-types.sh update path 2018-05-30 09:07:59 +02:00
loader.go update imports to be in right package 2018-05-30 09:06:26 +02:00
request_builder.go moved data parser into 'request_data' + created internal lib to parse multipart inside 'internal/multipart' + added default type 'any' + more things... 2018-05-29 15:43:09 +02:00
request_data.go update imports to be in right package 2018-05-30 09:06:26 +02:00
router.go update imports to be in right package 2018-05-30 09:06:26 +02:00
server.go add 'controller path-finding' + 'method check' + [TODO: issue with ParseMultipartForm() that is slow] 2018-05-21 13:02:15 +02:00
types.go update imports to be in right package 2018-05-30 09:06:26 +02:00

README.md

xfw: all-in-one REST API

xfw 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.

Here's a taste of some features:

  • human-readable json configuration
  • nested routes (i.e. /user/:id: vs. /user/post/:id:)
  • useful http methods: GET, POST, PUT, DELETE
  • manage URL, query and body arguments:
    • multipart/form-data
    • 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)
  • generic type check (i.e. implement your types alongside built-in types)