如何检查数据是否符合方案

问题描述

我有一个要序列化的数据架构。


use JMS\Serializer\Annotation as Serializer;
use JMS\Serializer\Annotation\AccessorOrder;

/**
 * @AccessorOrder("custom",custom = {"email","name","password"})
 * @Serializer\ExclusionPolicy("all")
 */
class SignInRequest
{
    /**
     * @Serializer\Expose()
     * @Serializer\Type("string")
     * @var string
     */
    public string $email;

    /**
     * @Serializer\Expose()
     * @Serializer\Type("string")
     * @var string
     */
    public string $name;

    /**
     * @Serializer\Expose()
     * @Serializer\Type("string")
     * @var string
     */
    public string $password;
}

数据序列化


class RequestData
{

    private SerializerBuilder $serializerBuilder;

    /**
     * RequestData constructor.
     * @param SerializerBuilder $serializerBuilder
     */
    public function __construct(SerializerBuilder $serializerBuilder)
    {
        $this->serializerBuilder = $serializerBuilder;
    }


    public function getData(ServerRequestInterface $request,string $object): object
    {
        $serializer = $this->serializerBuilder->build();
        return $serializer->deserialize((string)$request->getBody(),$object,'json');
    }
}

我如何检查用户是否根据上面的架构在 (json) 中提交数据。如果数据不是这种形式,我可以发送开箱即用的瘦身例外 带有数据与架构不匹配的消息。使用内置的 JMS Serializer 功能??

提前致谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...