1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jupitergao-jserver

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Китайская версия инструкции

jserver

Сервер JSON API и статических файлов на Rust

Точно такой же, как json-server от typicode (Node.js)

Получите полноценный фейковый REST API без какого-либо кодирования за менее чем 30 секунд (серьезно)

Создано с <3 для фронтенд-разработчиков, которым нужен быстрый бэкенд для прототипирования и мокинга.

Начало работы

Установите JServer

cargo build --release
cp target/release/jserver /usr/bin/

Создайте файл data.json с некоторыми данными

{
  "posts": [
    { "id": 1, "title": "jserver", "author": "jupiter.gao" }
  ],
  "comments": [
    { "id": 1, "body": "some comment" }
  ],
  "profile": { "name": "jupiter" },
  "homepage": "https://apicenter.com.cn"
}

Запустите JServer

jserver

Теперь, если вы перейдете по адресу http://localhost:2901/api/posts/1, вы получите

{ "id": 1, "title": "jserver", "author": "jupiter.gao" }

Также при выполнении запросов полезно знать следующее:

  • Если вы делаете POST, PUT, PATCH или DELETE запросы, изменения будут автоматически и безопасно сохранены в data.json.
  • JSON тело вашего запроса должно быть объектом или одиночным значением, как и вывод GET. (например, {"name": "Foobar"} "test string" 83.01)
  • Значения идентификаторов не изменяемы. Любое значение id в теле вашего PUT или PATCH запроса будет игнорироваться. Только значение, установленное в POST запросе, будет учтено, но только если оно еще не занято.
  • POST, PUT или PATCH запросы должны включать заголовок Content-Type: application/json, чтобы использовать JSON в теле запроса. В противном случае будет возвращен статус-код 400.## Маршруты

На основе предыдущего файла data.json, вот все стандартные маршруты.

Маршруты для массивов

GET    /api/posts
GET    /api/posts/1
POST   /api/posts
PUT    /api/posts/1
PATCH  /api/posts/1
DELETE /api/posts/1

Маршруты для объектов или значений

GET    /api/profile
POST   /api/profile
PUT    /api/profile
PATCH  /api/profile

Фильтрация

GET    /api/posts?title=jserver
GET    /api/posts?id=1

Операторы

Для чисел используйте следующие суффиксы: _lt, _lte, _gt, _gte для <, <=, >, >= соответственно. Для строк используйте _like для содержит и _nlike для не содержит. Для массивов используйте _contains для содержит и _ncontains для не содержит. Для чисел, строк, булевых значений используйте _ne для !=. Для полей используйте _exists для не равно null и _nexists для равно null.

GET    /api/posts?title_like=server
GET    /api/posts?id_gt=1&id_lt=3&title_exists=true

Пагинация

Используйте необязательные параметры _page и необязательные параметры _size для пагинации возвращаемых данных.

GET /api/posts?_page=7
GET /api/posts?_page=7&_size=20
GET /api/posts?_size=100

По умолчанию возвращается 20 элементов, страницы начинаются с 1 (0 рассматривается как 1)

Сортировка

Добавьте _sort и _order (по умолчанию сортировка по возрастанию)

GET /api/posts?_sort=views&_order=asc

Для сортировки по нескольким полям используйте следующий формат:

GET /api/posts?_sort=user,views&_order=desc,asc

Срез

Добавьте _start и (_end или _limit)

GET /api/posts?_start=20&_end=30
GET /api/posts?_start=20&_limit=10
```В ответе массива включается заголовок `X-Total-Count`

### База данных

GET /db


### Загрузка файлов

Вы можете загружать файлы на сервер и получать к ним доступ через статический файловый сервер ниже.

POST /upload


Тело запроса должно быть в формате `multipart/form-data`, а имя поля файла должно быть `file`.
Тело ответа будет массивом JSON, где каждый элемент будет иметь свойства `name`, `path` и `size`.

### Статический файловый сервер

Вы можете использовать JSON Server для обслуживания ваших HTML, JS и CSS, просто создайте директорию `./public`
или используйте `--public-path` для установки другой директории статических файлов.

```bash
mkdir public
echo 'hello world' > public/index.html
jserver
jserver --public-path ./some-other-dir

Использование CLI

Usage: jserver [OPTIONS]

Options:
  -b, --bind-address <BIND_ADDRESS>          [default: 0.0.0.0:2901]
  -d, --db-path <DB_PATH>                    [default: ./data.json]
  -p, --public-path <PUBLIC_PATH>            [default: ./public]
  -i, --id <ID>                              [default: id]
  -m, --max-body-limit-m <MAX_BODY_LIMIT_M>  [default: 100]
      --debug
  -h, --help                                 Вывести справку
  -V, --version                              Вывести версию

Лицензия

Apache License 2.0

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

JSON API и сервер статических файлов на Rust Развернуть Свернуть
Apache-2.0
Отмена

Обновления (3)

все

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/jupitergao-jserver.git
git@api.gitlife.ru:oschina-mirror/jupitergao-jserver.git
oschina-mirror
jupitergao-jserver
jupitergao-jserver
main