Giter Site home page Giter Site logo

pastetext's Introduction

Pastetext

Описание проекта

REST API повторяющий функциональность pastebin. Реализованна возможность авторизации с помощью JWT и Spring Security. Генератор уникальных url вынесен в отдельный микросервис. Текстовый контент храниться в отдельном s3 совместимом хранилище Minio

Стек технологий

  • Java
  • Maven
  • Spring Boot
  • Spring Security
  • JWT
  • Spring Data JPA
  • PostgreSQL
  • Minio
  • Eureka
  • Springdoc-openapi
  • Архетиктура

    • eureka-server - модуль модуль, который использует Spring Cloud Netflix Eureka в качестве встроенного сервера обнаружения.
    • GeneratorUrl - микросервис, отвечающий за генерацию уникальных и коротких url
    • paste-service - микросервис, отвечающий за авторизацию и создание, получение, удаление текстовых публикаций

    Примеры REST-запросов

    GeneratorUrl

    Получение уникального коротокого url

    GET /api/generated-url

    Ответ:

    {
      "id": 0,
      "url": "string"
    }

    paste-service

    Регистрация

    POST /api/auth/registration
    {
      "username": "string",
      "password": "string",
      "email": "string"
    }

    Ответ:

    {
      "token": "string"
    }

    Получение токена

    POST /api/auth/authenticate
    {
      "username": "string",
      "password": "string"
    }

    Ответ:

    {
      "token": "string"
    }

    Инвалидация токена

    GET /api/auth/logout

    Ответ:

    {
      "message": "successfully logged out"
    }

    Добавить новую пасту

    POST /api/pastes
    {
      "title": "string",
      "content": "string",
      "visibility": "string",
      "pasteExpirationMinutes": 0,
      "permissions": [
        "string"
      ]
    }

    Ответ:

    {
      "url": "string",
      "title": "string"
    }

    Получить пасту по url

    GET /api/pastes/{paste-id}

    Ответ:

    {
      "title": "string",
      "content": "string",
      "createdAt": "2024-04-13T00:31:28.870Z",
      "expiredAt": "2024-04-13T00:31:28.870Z",
      "visibility": "PRIVATE",
      "lastVisited": "2024-04-13T00:31:28.870Z",
      "author": "string"
    }

    Удалить пасту по url

    DELETE /api/pastes/{paste-id}

    Ответ:

    {
      "message": "The paste has been successfully removed"
    }

    pastetext's People

    Contributors

    io-oinik avatar

    Watchers

     avatar

    Recommend Projects

    • React photo React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo Vue.js

      🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo Django

      The Web framework for perfectionists with deadlines.

    • D3 photo D3

      Bring data to life with SVG, Canvas and HTML. 📊📈🎉

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo Microsoft

      Open source projects and samples from Microsoft.

    • Google photo Google

      Google ❤️ Open Source for everyone.

    • D3 photo D3

      Data-Driven Documents codes.