可嵌入任何项目中的轻量级Json API服务器

18-12-29 banq
    

Camarero可以为现有应用程序添加一些JSON API功能,对于有大量读取场景下实现只读性的JSON API 。使用Elixir编写,它的设计非常简单,便于对数据进行只读性的Web访问。它可能确实是替换Redis或任何其他键值存储的好选择。

根据其测试,一百万个键值存储的请求响应时间只需要几十微秒。

Camarero当初设计目的是为所有的微服务向Consul提供一个用作健康检查的心跳接口。

Camarero可以插入到任何功能应用程序中,它会把路由/端点的请求委派给配置的处理程序模块来处理。最简单的配置可能如下所示:

config :camarero,
  carta: [Camarero.Carta.Heartbeat],
  root: "api/v1"

/api/v1是Web服务器的根,一个Camarero.Carta.Heartbeat模块在这里被声明为处理程序。也可以通过调用Camarero.Catering.route动态添加处理程序!

处理程序是一个实现Camarero.Plato行为的模块。它由操纵其背后的conteiner的方法组成。任何模块都可以实现此行为,从而充当处理传入HTTP请求的处理程序。

Camarero基于Cowboy2使用Plug运行,要配置Cowboy,可以在文件中指定:config.exs

config :camarero,
  cowboy: [port: 4001, scheme: :http, options: []]