cinatra icon indicating copy to clipboard operation
cinatra copied to clipboard

能否基于cinatra实现rest服务端

Open tyzz2017 opened this issue 6 years ago • 5 comments

tyzz2017 avatar Sep 24 '18 04:09 tyzz2017

我觉得是可以的,因为可以在业务函数里处理各种请求。

qicosmos avatar Oct 22 '18 07:10 qicosmos

可以在项目外加一个 extension, 用 class-based RESTful 风格的 API

class person : public cinatra::resource
{
public:
    void * get(int id)
    {
    }
}

micfan avatar Mar 16 '19 11:03 micfan

可以列举一些框架的做法,看看怎么处理比较好。

qicosmos avatar Mar 17 '19 01:03 qicosmos

issue 所问是想要这种可继承 class resource {} 基类类的API?

这种 API 的优势是利于快速开发,简洁易懂。

server 端的 RESTful style 可借鉴

  • https://flask-restful.readthedocs.io/en/latest/quickstart.html#resourceful-routing
  • https://github.com/ruby-grape/grape-on-rack/blob/master/api/entities.rb

关心 C++ 两点,

  1. InheritedResource::post() 如何把返回的泛型实例,转化为 response 对象
  2. void* get(int id) 没有 bind request 形参,比较方便查看 RESTful 中的 URL parameters ,那么 io_context 内的 request 如何获取,Python-Flask 框架 是使用了 stack, 而cinatra 好像是 stackless 协程?

micfan avatar Mar 17 '19 09:03 micfan

我觉得这个不应放在cinatra项目来考虑,毕竟是业务上的事情,与库基本没啥关系

fawdlstty avatar May 14 '19 07:05 fawdlstty

restfull api已经支持了

qicosmos avatar Jan 14 '24 12:01 qicosmos