Express Patch Method用法

时间:2017-05-03 14:13:02

标签: node.js api express methods api-design

我的问题是关于API的设计。

我们即将重建从Meteor.JS到NodeJS / Express的整个API后端基础架构。

虽然我们发现了一个与我们的API有关的问题。 我们以前在Meteor上有Method.Call,可以使用它来定义我们想要的任何内容。

现在我们想遵循一些REST原则,因此我们只想使用GET / POST / PUT / DELETE和PATCH

//示例POST

createTournament: async(req, res) => {
  if(!req.body || typeof req.body !== 'object'
    || !req.body.name || typeof req.body.name !== 'string'
    || !req.body.description || typeof req.body.description !== 'string'
    || !req.body.gameId || typeof req.body.gameId !== 'string')
  {
      return res.sendStatus(400);
  }
  const insertId = await (functions.createTournament(
    req.body.name,
    req.body.description,
    req.body.gameId);
  if (insertId) {
    res.status(201).send(insertId);
  } else {
    res.sendStatus(404);
  }
},

//我当前的补丁功能

patch: async(req, res) => {
  if (!req.params
  || !req.params.id  
  || !req.body) {
    res.sendStatus(400);
  }
  const tournament = await functions.patchTournament(req.params.id, req.body);
  res.status(200).send(tournament);
},

问题是只有具有admin角色的用户才能修补gameId,其他用户只能修改说明。

这是一个轻量级对象,因为实际的对象有大约20个要设置的属性。

在使用PATCH时,我们想知道是否可以授权某些用户角色只能编辑某些字段。 我们如何以清晰易懂的方式做到这一点。

任何帮助都会非常棒。如果您有任何问题,请随时问我。

0 个答案:

没有答案