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

OSCHINA-MIRROR/gybaoyu-Article-Community

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
API.md 12 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 00:02 d925cfc

API-разработка для фронтэнда: правила именования, UserController, CommentController, ReplyController, ArticleController и ChatController

Правила именования API: Если в пути есть {xxx}, например: /getUserByID/{id}, то это означает, что id должен использоваться в REST-архитектуре для передачи. В противном случае используются RequestParam или ResponseBody, соответствующие GET и POST (все запросы, кроме тех, которые помечены как POST, являются GET или другими запросами).

UserController

  • /login => login(User user) boolean POST — проверяет правильность учётных данных пользователя, true означает успешную авторизацию, сохраняет cookie.

    • В объекте user обязательно должны быть поля name и password.
  • /register => reg(User user) boolean POST — проверяет уникальность имени пользователя, false означает добавление нового пользователя (указывает на отсутствие дублирования).

    • Если type равен «гость», в объекте user обязательно должны быть поля name, password и type.
    • Если type равен «ученик», в объекте user обязательно должны быть поля name, password, type, clazz и sess.
  • /getUserByID/{id} => allByID(Integer id) User — получает всю информацию о пользователе по его идентификатору.

  • /logout => logout() void — удаляет cookie, отменяет авторизацию.

  • /getCookieUser => getUser() User — получает всю информацию о текущем пользователе с помощью cookie.

  • /getUserNameByID/{id} => nameByID(Integer id) String — получает имя пользователя по идентификатору.

  • /getIDByName/{name} => getIDByName(String name) Integer — получает идентификатор пользователя по имени.

  • /getUserByName/{name} => uByName(String name) User — получает все данные о пользователе по имени.

  • /updateUser => updateUser(User user) — обновляет информацию о пользователе.

    • Можно обновлять поля password, email, sess, clazz, type.
    • В объекте user обязательно должен быть указан id, лучше не использовать только id (чтобы избежать потери производительности).
    • Важно проверять пустые строки! Иначе пользователь сможет обновить данные, если введёт пустую строку.

CommentController

  • /comment => comment(Comment comment) void POST — добавляет комментарий.

    • В объекте comment обязательно должны быть указаны поля aid и text.
  • /queryComment/{aid} => queryc(Integer aid) List — запрашивает комментарии по идентификатору статьи.

  • /deleteComment/{id}=> delete(Integer id)void — удаляет комментарий по идентификатору (подходит для удаления чата, просто укажите id).

    • Все ответы на удалённый комментарий также будут удалены.
  • /countCommentByUID/{uid} => byUID(Integer uid) — подсчитывает количество комментариев по идентификатору пользователя.

    • Возвращает null, если нет комментариев.

ReplyController

  • /reply => reply(Reply reply) void POST — добавляет ответ.

    • В объекте reply обязательно должны быть указаны поля from, text и to.
  • /queryReply/{from} =>queryc(Integer from)List — запрашивает ответы по идентификатору комментария.

  • /getReplyByArticleID/{aid} =>byAID(Integer aid) List — запрашивает ответы по идентификатору статьи.

  • Поскольку структура данных спроектирована таким образом, что ответ не может быть удалён напрямую (если только вы не удалите комментарий, к которому он относится).

ArticleController

  • /addArticle => add(Article article)void POST — добавляет статью.

    • Статья должна содержать поля uid, title, content, des, tag, img.
    • Рекомендуется передать "" вместо null для des.
  • /updateArticle => update(Article article) void POST — обновляет статью.

    • Статья должна содержать поля id, img, tag, content, title и des.
    • Обратите внимание, что каждое поле должно быть заполнено, а не пустым. Если пользователь полностью удалит текст из поля, используйте "" вместо null.
    • Сначала получите текущую статью с помощью getArticleByID и заполните форму.
  • /deleteArticle/{id} => delete(Integer id) void DELETE — удаляет статью.

    • Используйте DeleteMapping (я не тестировал GetMapping, поэтому не стал его менять).
  • /passArticle/{id} => passOne(Integer id)void — передаёт статью на проверку.

  • /passAll => passAll()void — проверяет все неопубликованные статьи.

  • /getArticleByPass/{pass} => getpList(boolean pass) List — получает все статьи (проверенные и непроверенные), в зависимости от переданного параметра.

    • Возвращаемая статья содержит только поля id, author, title и time.
  • /getAllArticle => getAllA() List — получает все статьи.

    • Возвращаемые статьи содержат только поля id, author, title, des и view, like, time (для статей на главной странице).
  • /getArticleByID/{id} => allDataForArticleByID(Integer id) Article — получает полную информацию об одной статье, включая увеличение количества просмотров.

  • /getArticleByAuthor/{aid} => allArticleForOneAuthor(Integer aid) List — находит все статьи одного автора, и все поля статьи будут извлечены.

  • /getArticleForIndex =>forIndex(Integer now,Integer size)ThreeTuple<List,Integer,Integer> — извлекает данные для разбивки на страницы (уже разбитые на страницы).

    • now: текущая страница, по умолчанию первая страница данных.
    • size: количество данных на каждой странице, по умолчанию 10.
    • list: набор статей (возвращаемое значение).
    • total: общее количество статей (возвращаемое значение).
    • pages: общее количество страниц (возвращаемое значение).
    • Не передавайте 0 в качестве параметра, иначе будет выдано исключение.
  • /like => like(Integer aid) — возвращает количество лайков для статьи, обязательно укажите aid.

  • /byLike/{size} byLike(Integer size)List — сортирует статьи по количеству лайков.

    • Укажите количество, которое вы хотите, например, 5 для первых 5 лайков.
  • /setTop=> stop(boolean top,Integer id) void — устанавливает статью в топ/удаляет из топа.

  • /getTop=> top() List — получает статьи в топе.

  • /getCache=> getCache void — выводит данные кэша в консоли.

  • /cache => cache void — синхронизирует кэш с базой данных.

  • /search => search(String text,Integer now,Integer size ) — ищет статьи по тексту.

    • text: текст поиска пользователя.
    • now: текущая страница, по умолчанию первая. — size: количество статей на странице, по умолчанию 10.

ChatController

  • /chat=> add(Chat chat)void — добавляет чат POST.

    • Объект chat должен содержать поля uid и text.
    • uid: строка текущего авторизованного пользователя.
    • text: содержимое.
  • /queryChat=>query(int now,int size) — получает сообщения без ответов (уже разбиты на страницы) PageInfo.

    • now: текущая страница, по умолчанию первая.
    • size: количество сообщений на странице, по умолчанию 10.

FileController

  • /upload => upload(MultipartFile file,username,uid) POST — загружает файл, используя MultipartFile. username и uid — это информация о текущем пользователе, которую можно получить через /getCookieUser.

  • Возвращаемый код:

    • empty — пустой файл;
    • success — успешная загрузка;
    • fail — неуспешная загрузка.

— После success идёт путь к файлу, например: success:D:/usr/xxxx.jpg. Здесь success: — это индикатор успешной загрузки, а D:/usr/xxxx.jpg — путь к загруженному файлу (путь к конфигурационному файлу + имя пользователя + имя файла).

/addUserByExcel => excel(String path,Integer clazz,Integer sess) Object POST — импортирует данные студентов из Excel и возвращает журнал.

— Возвращаемое значение — объект, который можно использовать как строку. Необходимо вывести диалоговое окно с журналом (возвращаемым значением), так как в нём содержится некоторая информация об импортированных данных.

— Обратите внимание, что в таблице могут быть только китайские иероглифы. Имя студента должно быть расположено в первой колонке слева или в первой строке сверху, иначе будет возвращена ошибка. Это не влияет на данные.

Отдельные инструменты

ThreeTuple(TwoTuple)

Кортеж для хранения нескольких объектов.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/gybaoyu-Article-Community.git
git@api.gitlife.ru:oschina-mirror/gybaoyu-Article-Community.git
oschina-mirror
gybaoyu-Article-Community
gybaoyu-Article-Community
master