An open API service indexing awesome lists of open source software.

https://github.com/jhnvlglmlbrt/rss-aggregator

Создание RSS агрегатора каналов
https://github.com/jhnvlglmlbrt/rss-aggregator

api chi feeds go-chi golang goose rss-aggregator schema sql sqlc

Last synced: 8 months ago
JSON representation

Создание RSS агрегатора каналов

Awesome Lists containing this project

README

          

# ⚙️ Rss feed aggregator

#### # Создание RSS feed агрегатора, который позволяет клиенту:

- Добавлять RSS-каналы для сбора постов
- Подписываться и отписываться от RSS-каналов, добавленных другими пользователями
- Получать все последние посты из RSS-каналов, на которые подписан пользователь

## ❗ Requirements

- .env
```
PORT=8080
DB_URL=postgres://postgres:Username@localhost:5432/dbname?sslmode=disable
```

## 💿 Installation

```
go get
```

## 🪛 How to use?

```
cd sql/schema && goose postgres postgres://postgres:Username@localhost:5432/dbname up
cd ../../ && make run
```

## Queries

### /users

- **GET:** `http://[::1]:8080/v1/users`
```
Authorization: ApiKey userApiKey
```

- **POST:** `http://[::1]:8080/v1/users`
```json example
{
"name": "Bob"
}
```

### /feeds

- **GET:** `http://[::1]:8080/v1/feeds`

- **POST:** `http://[::1]:8080/v1/feeds`
```json example
{
"name":"CrimeJunky",
"url":"https://feeds.simplecast.com/qm_9xx0g"
}
```
```Headers
Authorization: ApiKey userApiKey
```

### /feed_follows

- **GET:** `http://[::1]:8080/v1/feed_follows`

- **POST:** `http://[::1]:8080/v1/feeds`
```json example
{
"feed_id" : "94687cb3-5403-4b54-84a2-7bcfbb100faf"
}
```

- **DELETE:** `http://[::1]:8080/v1/feed_follows/{feedFollowID}`

```Headers
Authorization: ApiKey userApiKey
```

### /posts

- **GET:** `http://[::1]:8080/v1/posts`
```Headers
Authorization: ApiKey userApiKey
```