Мой сервер JSON из базы данных обновления Typicode в ReactJS

Недавно я пытался работать с поддельным API, используя свой json-сервер из typicode. Использование поддельных API-интерфейсов для меня довольно новое, поэтому мой вопрос может показаться немного странным.

Правильно ли я понимаю концепцию этого поддельного API-сервера, что я могу обновить базу данных с помощью почтового запроса в ReactJS? Или база данных никогда не меняется через почтовый запрос, и я получаю результат только в журнале консоли?

В частности, я пытаюсь отправить данные формы из формы на мой сервер json через почтовый запрос.

Спасибо!

Код, который я использую для публикации данных:

axios.post(`my-url`, { user })
                    .then(res => {
                      console.log(res);
                      console.log(res.data);
                    })
                        }

person Undelivered    schedule 19.10.2020    source источник


Ответы (2)


Я предполагаю, что вы используете пакет json-server и используете сервер таким образом. В этом случае успешные POST-запросы, которые вы делаете, будут сохраняться в файле, который вы предоставили серверу, или в файле по умолчанию, если вы не предоставите какой-либо конкретный файл.

Если вы хотите использовать json-server и сохранить изменения, вы можете использовать его пакет npm:

npm install -g json-server

Затем создайте файл db.json в каталоге вашего проекта и укажите структуру данных, которую вы хотите использовать:

{
  "posts": [
    { "id": 1, "title": "json-server", "author": "typicode" }
  ]
}

Если вы не предоставите файл db.json, он будет создан автоматически при запуске сервера. Итак, решать вам.

Затем вы должны запустить сервер:

json-server db.json

Сервер будет на порту 3000, если на этом порту запущено другое приложение, вы можете указать порт при его запуске:

json-server db.json -p 3001

Теперь вы можете делать запросы к http://localhost:3001/posts. Просто проверьте его документацию о запросах.

person devserkan    schedule 19.10.2020
comment
Да, верно, я использую json-сервер, о котором вы упомянули. Как я правильно понимаю: мой почтовый запрос должен быть виден в моем файле json после успешной отправки? - person Undelivered; 19.10.2020
comment
Конечно. В этом весь смысл установки и использования сервера. - person devserkan; 19.10.2020
comment
Хорошо, я установил его здесь: my-json-server.typicode.com/aaronjoeldev/ демо что-то не так с настройкой? Потому что мои почтовые запросы ничего не меняют - person Undelivered; 19.10.2020
comment
Это что-то еще, что они обеспечивают. Я говорил о локальном пакете npm. Вы выполнили инструкции, которые объясняются здесь? Например, создать репозиторий на Github и создать там файл db.json? Кстати, не добавляйте ответ, если хотите обновить свой вопрос. Просто отредактируйте свой вопрос и внесите туда обновления. - person devserkan; 19.10.2020
comment
Ну, и вот что они говорят: чтобы иметь возможность предоставлять бесплатные услуги как можно большему количеству людей на этом этапе, проект имеет несколько ограничений: изменения подделываются и не сохраняются (как и JSONPlaceholder)... поэтому изменения не сохраняются, если вы используете этот метод. - person devserkan; 19.10.2020
comment
Спасибо за вашу поддержку! Я следовал инструкциям от них. Но, как вы упомянули: изменения подделаны. Я не знал об этом. Итак, если бы я настроил локальный сервер json и сделал почтовый запрос, файл базы данных должен был бы быть изменен локально, верно? Если да: как лучше всего это сделать? - person Undelivered; 19.10.2020
comment
Я обновил свой ответ. Таким образом, изменения будут сохранены. Честно говоря, я полагаю, что нет никакой лучшей практики для подделки такого API. Это только в учебных целях, поэтому установите сервер, подделайте API, попробуйте и научитесь :) - person devserkan; 19.10.2020

Вы не можете сделать почтовый запрос на этот сервер https://my-json-server.typicode.com/$%7Bgithub-username%7D/$%7Bgithub-repo%7D/$%7Bevent%7D,

На момент этого ответа вы можете сделать только запрос на получение, я советую вам использовать JSON-сервер на вашей локальной машине.

Создайте файл db.json в папке проекта,

Пример добавить что-то подобное в файл

{
  "events": [
    {
      "id": 123,
      "category": "animal welfare",
      "date": "January 28, 2022",
      "time": "12:00",
    },
    {
      "id": 456,
      "category": "nature",
      "date": "January 30, 2022",
      "time": "11:00",
    },
}

запустите npm install -g json-server и json-server --watch db.json, чтобы указать baseUrl, который потребуется для выполнения ваших запросов.

person toeyeen    schedule 02.03.2021