Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

codelooper75/api_articles_rest

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Агрегатор новостей Hacker News.

https://news.ycombinator.com

Приложение периодически парсит указанный сайти и агрегирует информацию о опубликованных постах. Настройки периода обновления постов указаны в core.settings.py (по умолчанию 1 раз в час). Реализовано с помощью Celery Beat / RabbitMQ.

Получить список постов

**Request:

GET /posts/
Accept: application/json

**Response **

HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 30,
    "next": "http://127.0.0.1:8000/posts/?limit=5&offset=5",
    "previous": null,
    "results": [
        {
            "id": 82,
            "title": "SolarWinds hack was 'largest and most sophisticated attack' ever: MSFT president",
            "url": "https://www.reuters.com/article/us-cyber-solarwinds-microsoft-idUSKBN2AF03R",
            "created": "2021-02-15T12:38:57.100133+03:00"
        },
        {
            "id": 83,
            "title": "Show HN: ustaxes.org – open-source tax filing webapp",
            "url": "https://github.com/thegrims/UsTaxes",
            "created": "2021-02-15T12:38:57.108168+03:00"
        },
        {
            "id": 84,
            "title": "Ercot nearly at capacity for Texas power grid",
            "url": "http://www.ercot.com/content/cdr/html/real_time_system_conditions.html",
            "created": "2021-02-15T12:38:57.115383+03:00"
        },
        {
            "id": 85,
            "title": "Is Your Linux Version Hiding Interrupt CPU Usage from You?",
            "url": "https://tanelpoder.com/posts/linux-hiding-interrupt-cpu-usage/#how-to-measure-interrupt-cpu-overhead-when-irq-time-accounting-is-disabled",
            "created": "2021-02-15T12:38:57.121914+03:00"
        },
        {
            "id": 86,
            "title": "Show HN: Khan-dl – Khan Academy Course Downloader",
            "url": "https://github.com/rand-net/khan-dl",
            "created": "2021-02-15T12:38:57.128754+03:00"
        }
    ]
}

Сортировка

  • Если параметр ordering не указан, то по умолчанию сортировка выполняется по дате сохранения постав в БД.

  • Для вывода данных, отсортированных по атрибуту title в алфавитном порядке (по возрастанию), запрос будет выглядеть так:

    /posts/?ordering=title

  • Такой же запрос, но сортировка в обратном порядке:

    /posts/?ordering=-title

Вывод подмножества данных

  • Если limit и offset не указаны, то вернется только 5 постов.

  • Для вывода 10ти постов запрос будет выглядеть так:

    posts/?limit=10

  • Для пропуска 15ти последних постов запрос будет выглядеть так:

    posts/?offset=15

  • Для вывода 10ти постов с пропуском 15ти, запрос будет выглядеть так:

    posts/?limit=10&offset=15

Параметры ordering, limit и offset могут использоваться совместно.

  • Для вывода 10ти постов с пропуском 15ти, отсортированных по заголовку запрос будет выглядеть так:

    posts/?ordering=title&limit=10&offset=15

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

Start Django: python manage.py runserver

Start RabbitMQ: sudo rabbitmq-server

Start Celery worker: celery -A proj worker -l info

Start Celery Beat: celery -A proj beat -l INFO

Start Flower: flower -A proj --port=5555

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.