All Projects → hiconvo → Api

hiconvo / Api

Convo's RESTful API

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Labels

Projects that are alternatives of or similar to Api

Grape Swagger
Add OAPI/swagger v2.0 compliant documentation to your grape API
Stars: ✭ 1,000 (+2225.58%)
Mutual labels:  api
Generator Expressjs Rest
Project template for an ExpressJS application
Stars: ✭ 41 (-4.65%)
Mutual labels:  api
Taizhou Fe Api
💥💥 仿今日头条后端 API 服务 Golang ,后台管理, APP 服务, Vue、 ReactJS、台湾头条
Stars: ✭ 42 (-2.33%)
Mutual labels:  api
Api
`fdgt` is a mock API for the Twitch. Via `fdgt`, you can simulate events without having to spend a penny!
Stars: ✭ 40 (-6.98%)
Mutual labels:  api
Laravel Compass
A REST client inside your Laravel app
Stars: ✭ 1,002 (+2230.23%)
Mutual labels:  api
Graphql Lodash
🛠 Data manipulation for GraphQL queries with lodash syntax
Stars: ✭ 1,003 (+2232.56%)
Mutual labels:  api
Nodemcu Espress
Ultra-Lightweight and modular Node.js express like http server for NodeMCU. web - ESP8266
Stars: ✭ 39 (-9.3%)
Mutual labels:  api
Telegram Test Api
Simple implimentation of telegram API which can be used for testing telegram bots
Stars: ✭ 42 (-2.33%)
Mutual labels:  api
Friend.ly
A social media platform with a friend recommendation engine based on personality trait extraction
Stars: ✭ 41 (-4.65%)
Mutual labels:  api
Apiset
API Set resolver for Windows
Stars: ✭ 42 (-2.33%)
Mutual labels:  api
Caluma
A collaborative form editing service
Stars: ✭ 40 (-6.98%)
Mutual labels:  api
Mangopay2 Nodejs Sdk
Node.js SDK for MANGOPAY
Stars: ✭ 40 (-6.98%)
Mutual labels:  api
Builder
Prepare your Laravel apps incredibly fast, with various commands, services, facades and boilerplates.
Stars: ✭ 1,009 (+2246.51%)
Mutual labels:  api
Obs Studio Python Scripting Cheatsheet Obspython Examples Of Api
⚫️ OBS Studio API with Python
Stars: ✭ 40 (-6.98%)
Mutual labels:  api
Contentjet Ui
Headless API-first content management system
Stars: ✭ 42 (-2.33%)
Mutual labels:  api
Axios Module
Secure and easy axios integration with Nuxt.js
Stars: ✭ 998 (+2220.93%)
Mutual labels:  api
Axios Rest
A simple axios wrapper to make rest api call delightful
Stars: ✭ 41 (-4.65%)
Mutual labels:  api
Intro To Apis Course
Introduction to APIs course
Stars: ✭ 1,009 (+2246.51%)
Mutual labels:  api
Psraw
PowerShell Reddit API Wrapper
Stars: ✭ 42 (-2.33%)
Mutual labels:  api
Pantry
🥑 Free data storage as a service that allows devs to store JSON for multiple apps & users. A good resource when building personal projects, apps for hackathons, and prototypes alike.
Stars: ✭ 42 (-2.33%)
Mutual labels:  api

Convo API

CircleCI codecov goreportcard

The repo holds the source code for Convo's RESTful API. Learn more about Convo at convo.events.

Development

We use docker based development. In order to run the project locally, you need to create an .env file and place it at the root of the project. The .env file should contain a Google Maps API key, Sendgrid API key, and a Stream API key and secret. It should look something like this:

GOOGLE_MAPS_API_KEY=<YOUR API KEY>
SENDGRID_API_KEY=<YOUR API KEY>
STREAM_API_KEY=<YOUR API KEY>
STREAM_API_SECRET=<YOUR API SECRET>

If you don't include this file, the app will panic during startup.

After your .env file is ready, all you need to do is run docker-compose up. The source code is shared between your machine and the docker container via a volume. The default command runs air, a file watcher that automatically compiles the code and restarts the server when the source changes. By default, the server listens on port :8080.

Running Tests

Run docker ps to get the ID of the container running the API. Then run

docker exec -it <CONTAINER ID> go test ./...

Be mindful that this command will wipe everything from the database. There is probably a better way of doing this, but I haven't taken the time to improve this yet.

Maintenance Commands

# Update datastore indexes
gcloud datastore indexes create index.yaml

# Delete unused indexes
gcloud datastore cleanup-indexes index.yaml

# Update cron jobs
gcloud app deploy cron.yaml

One-Off Commands

# Get credentials to connect to the production database. [DANGEROUS]
gcloud auth application-default login

# Run the command. Example:
go run cmd/migrate-message-timestamps-and-photos/main.go --dry-run

# Clean up. [ALWAYS REMEMBER]
gcloud auth application-default revoke

Architecture

Architecture

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].