PHP应用程序中正确的RESTful SOA方法?

PHP应用程序中正确的RESTful SOA方法?,php,symfony1,soa,silex,Php,Symfony1,Soa,Silex,所以,我最近读了很多关于SOA的文章,并试图实现一些有用的东西。我从一个简单的博客开始,创建RESTful API。到目前为止,一切顺利。它工作得很好。然而,在编写使用RESTful API的web界面时,我开始感到毛骨悚然。我不知道我做的是否正确 例如,web界面有一个管理面板。该管理面板通过文件获取内容和流选项向API发出HTTP请求。现在,API是localhost,也是web界面,但是整个过程稍微慢一点。是这样吗?这是实现SOA的正确方法吗?此外,我正在处理少量重复代码以进行验证。我应该

所以,我最近读了很多关于SOA的文章,并试图实现一些有用的东西。我从一个简单的博客开始,创建RESTful API。到目前为止,一切顺利。它工作得很好。然而,在编写使用RESTful API的web界面时,我开始感到毛骨悚然。我不知道我做的是否正确

例如,web界面有一个管理面板。该管理面板通过文件获取内容和流选项向API发出HTTP请求。现在,API是localhost,也是web界面,但是整个过程稍微慢一点。是这样吗?这是实现SOA的正确方法吗?此外,我正在处理少量重复代码以进行验证。我应该在哪里验证数据?在API中还是在web界面中?最好的方法是什么


欢迎提供提示、教程,特别是书籍。这是使用Silex实现的,它构建在Symfony组件之上。

我就是这样做的。虽然与localhost的连接一开始似乎是一种开销,但它是一种功能,因为您已经准备好在任何地方部署web界面应用程序,并且仍然使用API,而API可能在任何地方。当然,您可以在上面添加一些SSL

至于验证,您应该在API上进行验证,并在这些情况下返回(例如,对于无效参数,“400错误请求”)。通过这种方式,任何其他客户机都可以解释来自API的响应,并处理该响应以显示他们想要的方式。在您的web界面的情况下,基于HTTP状态代码的小错误消息非常好


你还面临哪些其他问题?另外,就一般的SOA架构而言,这是非常好的。

在这里大胆思考一下。Web界面是通过localhost托管的,因此服务器上的API变化不大,只是请求的数量通常会增加,并且没有internet可供遍历。您的计算机甚至在离开网卡之前就将请求循环返回给您。更多值得思考的东西。如果API除了为您自己的网页提供服务之外还有其他用途,那么我将在API中构建数据验证。通过这种方式,您可以向API本身和网站的用户发布。虽然我原则上同意,但如果您知道您的API与前端位于同一个框中,您应该尝试在同一执行过程中调用它,以节省引导资源和连接开销。显然,在可能的情况下,本地和远程之间的切换应该是无缝的。使用客户机对象来抽象这一点可以实现这一点。