gpt4 book ai didi

express - JSONAPI 指定的访客和授权用户的序列化器 `User` 模型的最佳实践是什么?

转载 作者:行者123 更新时间:2023-12-03 22:41:51 24 4
gpt4 key购买 nike

我正在使用 express.js 构建 API根据 JSONAPI 规范并拥有 sequelize.js模型。例如,User具有姓名、电子邮件、余额、last_login_time 等属性的模型。

如果客户端应用程序上的用户请求有关第三方用户 API 的数据,则只需使用名称和 last_login_time 等公共(public)属性进行响应。

如果客户端应用程序上的用户请求有关他自己的数据,API 需要使用公共(public)和私有(private)属性进行响应。

作为序列化程序,我使用 jsonapi-serializer 库。我有这样的序列化程序:

var JSONAPISerializer = require('jsonapi-serializer').Serializer;

module.exports = new JSONAPISerializer('users', {
attributes: ['name']
});

我是否可以创建 2 个不同的序列化程序?会不会因为几乎所有模型都有 2 个序列化程序而导致麻烦,并且可能导致引用混淆?

最佳答案

使用 instanceMethod像这样:

var User = sequelize.define('User', {
...
instanceMethods: {
serializeApi: function () {
return User.apiSerializer().serialize(this);
}
}
};

User.apiSerializer = function() {
return new JSONAPISerializer('users', {
attributes: ['name']
});
}

.
User.find(...).then((user) => {
res.json(user.serializeApi());
});

关于express - JSONAPI 指定的访客和授权用户的序列化器 `User` 模型的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39699397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com