Php 我应该如何使用Zend Framework最小化验证逻辑来处理XML/JSON REST请求
我正在使用Zend_框架编写一个小型restful web服务。我想支持以下几点:Php 我应该如何使用Zend Framework最小化验证逻辑来处理XML/JSON REST请求,php,zend-framework,Php,Zend Framework,我正在使用Zend_框架编写一个小型restful web服务。我想支持以下几点: JSON请求 XML请求 普通HTML Post请求 上下文切换是通过上下文切换助手完成的,因此没有问题 但是,我没有编写逻辑来验证和过滤每个请求类型的输入,而是想知道是否应该执行以下操作之一: 将Post请求的JSON/HTTP转换为XML,并根据XSD和Zend_验证进行验证* 使用Zend_JSON将XML/HTTP表单POST请求转换为JSON,并使用和Zend_验证验证解码的JSON* 我的问题是,我能
我发现XML方法也是我学习的方法之一,但我想知道其他人(tm)是如何做到这一点的。我不确定它在您的情况下是否有意义,但如果您要为相同的服务接受不同类型的输入,您可以为您拥有的每个服务方法创建一个模型,使用JSON、XML或HTTP输入填充模型,然后验证存储在模型中的数据 Matthew Weier O'Phinney有一篇很好的帖子,您可以在填充模型时使用它来验证数据。你可以调整这个想法以更好地满足你的需要
但在我看来,如果您使用每种输入格式用期望的数据填充一个公共对象,那么您只能对其进行一次筛选和验证。我不确定这在您的情况下是否有意义,但如果您要为相同的服务接受不同类型的输入,您可以为您拥有的每个服务方法创建一个模型,使用JSON、XML或HTTP输入填充模型,然后验证存储在模型中的数据 Matthew Weier O'Phinney有一篇很好的帖子,您可以在填充模型时使用它来验证数据。你可以调整这个想法以更好地满足你的需要
但在我看来,如果您使用每种输入格式用期望的数据填充一个公共对象,那么您只能对其进行一次筛选和验证。好主意,下面是我如何实现它的;1.创建验证工厂类2。将一个名为validate的新私有方法添加到应用程序\u Model\u Mapper\u Foo 3。更新了应用程序\u Model\u Mapper\u Foo->save($object}以首先调用$this->validate($object})4。validate方法,调用工厂,实例化Zend\u validate\u5。$id->isValid($object->getId())?null:throweexception(新异常($id->getMessages());好主意,下面是我实现它的方法;1.创建一个验证工厂类2.向应用程序添加一个名为validate的新私有方法\u Model\u Mapper\u Foo 3.更新应用程序\u Model\u Mapper\u Foo->save($object}以首先调用$this->validate($object})4.验证方法,调用工厂,实例化Zend\u validate\u5.$id->isValid($object->getId())?null:throwException(新异常($id->getMessages());