|
| 1 | +# Chat API |
| 2 | + |
| 3 | +This is a web chat API that allows users to create and manage chat rooms and send messages. The chat system also includes another API called Broadcaster, where users can subscribe to receive messages from a given chat room. The messages are sent from this API to Broadcaster through RabbitMQ. |
| 4 | + |
| 5 | + |
| 6 | +## Endpoints |
| 7 | + |
| 8 | +| Endpoint | Method | Protected | Description | |
| 9 | +|------------------------------| ------ |-----------|---------------------| |
| 10 | +| `/api/v1/rooms` | POST | YES | Create a room | |
| 11 | +| `/api/v1/rooms` | GET | YES | Search rooms | |
| 12 | +| `/api/v1/rooms/{id}` | GET | YES | Find a room by id | |
| 13 | +| `/api/v1/rooms/{id}` | PUT | YES | Update a room | |
| 14 | +| `/api/v1/rooms/{id}` | DELETE | YES | Delete a room | |
| 15 | +| `/api/v1/rooms/{id}/send` | POST | YES | Send a message | |
| 16 | +| `/api/v1/swagger/index.html` | GET | NO | API's documentation | |
| 17 | +| `/api/v1/healthz` | GET | NO | Health check | |
| 18 | + |
| 19 | +## Documentation |
| 20 | + |
| 21 | +The API is running in a Kubernetes cluster using GKE on GCP. Check out the documentation on: |
| 22 | + |
| 23 | +- [Chat API](https://git.chat.api.sesaque.com/api/v1/swagger/index.html) |
| 24 | + |
| 25 | +Other related repositories are: |
| 26 | + |
| 27 | +- [Chat App](https://github.com/sesaquecruz/react-chat-app) |
| 28 | +- [Broadcaster API](https://github.com/sesaquecruz/go-chat-broadcaster) |
| 29 | +- [Chat Infra](https://github.com/sesaquecruz/k8s-chat-infra) |
| 30 | +- [Chat API Docker Hub](https://hub.docker.com/r/sesaquecruz/go-chat-api/tags) |
| 31 | + |
| 32 | +## Tech Stack |
| 33 | + |
| 34 | +- [Go](https://go.dev) |
| 35 | +- [Gin](https://gin-gonic.com) |
| 36 | +- [Postgres](https://www.postgresql.org) |
| 37 | +- [RabbitMQ](https://www.rabbitmq.com) |
| 38 | + |
| 39 | + |
| 40 | +## Contributing |
| 41 | + |
| 42 | +Contributions are welcome! If you find a bug or would like to suggest an enhancement, please make a fork, create a new branch with the bugfix or feature, and submit a pull request. |
| 43 | + |
| 44 | +## License |
| 45 | + |
| 46 | +This project is licensed under the MIT License. See [LICENSE](./LICENSE) file for more information. |
0 commit comments