PUT интерфейс в RESTful API - PullRequest
       28

PUT интерфейс в RESTful API

0 голосов
/ 26 октября 2018

Я делаю простой веб-сайт с API, используя node, express и mongo с простым edgejs для front-end.Все маршруты работают в почтальоне (GET, POST, PUT, DELETE).Однако HTML5 не поддерживает метод PUT.Вот один пример.

Index.js

... 
app.put('/api/item/:id', function(req, res, next){
      About.findByIdAndUpdate({_id: req.params.id}, req.body)
      .then(function(){
        About.findOne({_id: req.params.id})
        .then(function(about){
          res.send(about)
        });
      }).catch(next)
    });

Это прекрасно работает в почтальоне.Вот что я изначально имел в своем представлении.

edititem.edge

    ...
    <form 
     action="/api/item/{{item._id}}" 
      method="PUT"
      encType="multipart/form-data">
        <div class="form-group">
          <label for="title">Name</label>
          <input type="text" class="form-control" name="name" placeholder="Name">
        </div>
        <div class="form-group">
          <label for="description">Profession</label>
          <input type="text" class="form-control" name="profession" placeholder="Profession">
        </div>
        <div class="form-group">
          <label for="description">Description</label>
          <input type="text" class="form-control" name="description" placeholder="Description">
        </div>
        <div class="form-group">
          <label for="description">Email</label>
          <input type="text" class="form-control" name="footerEmail" placeholder="Email">
        </div>
        <div class="form-group">
          <label for="content">Footer Description</label>
          <textarea name="footerDescription" id="" class="form-control" rows="10" placeholder="Footer Description"></textarea>
        </div>
        <div class="form-group text-center">
            <button class="btn btn-primary">Edit Item</button>
          </div>
      </form>

Я рассмотрел возможность привязать функцию к кнопке редактирования, чтобы просто удалить предыдущий элемент и создатьновый с обновленным содержанием, но это не может быть лучшей практикой, не так ли?Это изменило бы id, и из того, что я видел в Postman, правильный PUT не меняет id.Моя идея удалить и заменить бы.

Так как мне разрешить редактировать этот элемент из внешнего интерфейса?

...