Git Product home page Git Product logo

prj01's Introduction

API статистики

Установка

Система, на которой требуется развернуть приложение, должна иметь установленные пакеты:

  • Docker (вместе с Docker Compose)
  • Git

Для первоначальной установки приложения необходимо выполнить следующие команды в терминале (bash):

git clone https://github.com/yageorgiy/prj01
cd prj01
cp .env.example .env

# Настройка прав для директории проекта
chgrp -R 33 ./
chmod -R 775 ./

# Запуск контейнера
docker-compose up -d
docker-compose exec php composer update
docker-compose exec php php artisan key:generate
docker-compose exec php php artisan migrate:fresh --seeder=DatabaseSeeder

Сервис будет доступен по адресу http://127.0.0.1:8095/.

Доступные методы

TODO: сделать описание методов по спецификации OpenAPI

Ниже приведен список доступных для использования методов, их входные параметры.

Регистрация пользователя

Регистрация пользователя, от имени которого будут приниматься запросы.

POST /api/register

{
	"name": "string",
	"email": "string",
	"password": "string"
}

Параметры запроса:

  • name: обязательное поле, строка, имя пользователя
  • email: обязательное поле, строка, адрес электронной почты пользователя в формате [email protected]
  • password: обязательное поле, строка, пароль пользователя

Пример запроса:

POST /api/register HTTP/1.1
Host: localhost:8095
Content-Type: application/json
Accept: */*
Content-Length: 81

{
	"name": "user1",
	"email": "[email protected]",
	"password": "user_password"
}

Создание типа события

Создание типа события, который будет использоваться в фильтрах статистики.

POST /api/createEventType

{
	"event_name": "string"
}

Параметры запроса:

  • event_name: обязательное поле, строка, наименование типа события, которое нужно создать

Пример запроса:

POST /api/createEventType HTTP/1.1
Host: localhost:8095
Content-Type: application/json
Accept: */*
Content-Length: 33

{
	"event_name": "sample_event"
}

Отправка (регистрация) события

Добавление события в базу данных.

POST /api/submit

{
	"event_name": "string",
	"user_id": "integer"
}

Параметры запроса:

  • event_name: обязательное поле, строка, наименование события, которое нужно зафиксировать
  • user_id: обязательное поле, целое число, идентификатор пользователя, от имени которого фиксируется событие (используйте 1 для фиксации события от имени анонимного пользователя)

Пример запроса:

POST /api/submit HTTP/1.1
Host: localhost:8095
Content-Type: application/json
Accept: */*
Content-Length: 48

{
	"event_name": "sample_event",
	"user_id": 1
}

Вывод статистики

Вывод статистики из базы данных с применением фильтров.

GET /api/stats?type=integer&event_type_name=string&event_date_begin=datetime&event_date_end=datetime

Параметры запроса:

  • type: обязательное поле, целое число от 1 до 4, тип агрегации (1 = счетчик конкретного события, 2 = счетчик события по пользователю, 3 = счетчик события по IP-адресу, 4 = счетчик события по статусу пользователя)
  • event_type_name: обязательное поле, строка, наименование типа события
  • event_date_begin: обязательное поле, строка, дата начала диапазона в формате год-месяц-день час-минута-секунда (2000-01-31 23:10:00)
  • event_date_end: обязательное поле, строка, дата конца диапазона в формате год-месяц-день час-минута-секунда (2000-01-31 23:10:00)

Пример запроса:

GET /api/stats?type=1&event_type_name=sample_event&event_date_begin=2001-01-01%2000%3A00%3A00&event_date_end=2101-01-01%2000%3A00%3A00 HTTP/1.1
Host: localhost:8095
Accept: */*

prj01's People

Contributors

yageorgiy 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.