我正在嵌入式堆栈中实现RESTful Web API,它提供了一个没有REST功能的Web服务器。确切地说,嵌入式堆栈是在MQX RT操作系统之上运行的RTCS,微控制器是飞思卡尔的Kinetis K60。我能够区分GET / POST / DELETE / PUT请求并获取带参数的url(比方说/ this / firstValue / that / secondValue /...).
我使用strtok分隔网址的不同元素并做出决定。但是我的代码很难看,因为它充满了strcmp函数和if语句。我还需要检查firstValue和secondValue的边界(我可以在set / get函数中做,但每个参数的2个函数将重复)。此外,我希望能够在不涉及决策树的情况下添加参数。
我有两个问题:
-
Emilien
答案 0 :(得分:0)
REST是一种架构模式,所以我猜你的意思是你的服务器提供HTTP。
资源是'可以命名的任何数据'。例如嵌入式设备上的LED可能是'/ leds / led3'的URI您可以使用标准PUT请求更改它所拥有的数据(其状态,rgb led?等),GET应返回其当前状态。
对于编码,如果内存允许尽可能简单地进行路径查找,则通用树结构可能是明智的。使用叶子上的数据和函数指针(模拟对象)