Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shipgirlproject/formidable
A RESTful API for @AzurAPI/azurapi-js-setup (Azur Lane)
https://github.com/shipgirlproject/formidable
api azurlane azurlane-api node rest server shipgirls waifus
Last synced: about 2 hours ago
JSON representation
A RESTful API for @AzurAPI/azurapi-js-setup (Azur Lane)
- Host: GitHub
- URL: https://github.com/shipgirlproject/formidable
- Owner: shipgirlproject
- License: mit
- Created: 2021-08-28T04:38:15.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-08-21T10:38:25.000Z (3 months ago)
- Last Synced: 2024-08-22T11:27:56.708Z (3 months ago)
- Topics: api, azurlane, azurlane-api, node, rest, server, shipgirls, waifus
- Language: JavaScript
- Homepage:
- Size: 2.56 MB
- Stars: 17
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Formidable
> An azurlane data manager that updates / safekeeps your data as needed!
> Why? I usually take the microservice-ed approach on some of my apis so if things go down, I can fix those without needing to touch the main data consumers
## Features
* Speedy
* Reliable
* Simple
* Built-in Ratelimits
* Automated Data Maintenance
* Supported Data: `Ship`, `Equipments`, `Barrages`, `Chapters` and `VoiceLines`## API
> Test Node: https://formidable.herokuapp.com/
> Prod Node: https://formidable.kashima.moe/
## Self host?
* Install Node.JS >=14.0.0
* Download the Repo
* Do `npm i`
* Put `port` and `auth` in the config.json, or use the env `PORT` or `AUTHORIZATION`
* Do `npm run dev` for testing, `npm start` for prod## Support
🔗 https://discord.com/invite/FVqbtGu (#development)
🔗 https://discord.com/invite/aAEdys8 (#support)
## API Ratelimits
| Global | Default | 404 |
| :-----------: | :----------: | :-----------: |
| 100req / 5s | 50req / 5s | 5req / 5s |
> The Default ratelimit is based on per endpoint, the endpoint can have it's own ratelimit, or use the default one. Refer to the endpoints documentation below## Endpoints
> The endpoints actually format the JSON response data so you can actually read it at your browser
### Ships
| Endpoint | Ratelimit | Return Data | Description |
| :-------------: | :------------: | :-------------: | :--------------: |
| GET /ships/class?name=Iowa | 50req / 5s | Object[] | List all the ships that has this class |
| GET /ships/hull?name=Battleship | 50req / 5s | Object[] | List all the ships that has this hull type |
| GET /ships/id?code=147 | 50req / 5s | Object | Gets the ship with this ID |
| GET /ships/nationality?name=Sakura%20Empire | 50req / 5s | Object[] | List all the ships that has this nationality |
| GET /ships/rarity?name=Super%20Rare | 50req / 5s | Object[] | List all the ships that has this rarity |
| GET /ships/random | 50req / 5s | Object[] | List all the ships that has this rarity |
| GET /ships/search?name=Formidable | 25req / 5s | Object[] | Searches for the ship of your choice |
### Equipments
| Endpoint | Ratelimit | Return Data | Description |
| :--------------: | :------------: | :-------------: | :-------------: |
| GET /equipments/category?name=Destroyer%20Guns | 50req / 5s | Object[] | List all the equipments that is in this category |
| GET /equipments/nationality?name=Sakura%20Empire | 50req / 5s | Object[] | List all the equipments that has this nationality |
| GET /equipments/search?name=Twin%20410mm | 25req / 5s | Object[] | Searches for the equip of your choice |
### Chapters
| Endpoint | Ratelimit | Return Data | Description |
| :--------------: | :------------: | :-------------: | :-------------: |
| GET /chapters/search?name=6-4 | 25req / 5s | Object | Searches for the chapter via it's code or name |
### Barrages
| Endpoint | Ratelimit | Return Data | Description |
| :--------------: | :------------: | :-------------: | :-------------: |
| GET /barrages/search?name=Ayanami | 25req / 5s | Object | Searches a ship barrage via it's name |
### Voice Lines
| Endpoint | Ratelimit | Return Data | Description |
| :--------------: | :------------: | :-------------: | :-------------: |
| GET /voicelines/ship?id=147 | 50req / 5s | Object | Gets the voice lines on a ship via it's ID |
### Data Version
| Endpoint | Ratelimit | Return Data | Description |
| :--------------: | :------------: | :-------------: | :-------------: |
| GET /version | 50req / 5s | Object | Gets the current data version of Formidable |
### Data Update
| Endpoint | Ratelimit | Headers | Return Data | Description |
| :--------------: | :------------: | :------------: | :-------------: | :-------------: |
| POST /update | 1req / 120s | {"authorization": "your config auth"} | String ("Data is up to date!" or "Not up to date, data updated!") | Force updates the local data and updates the cache |
### Status
| Endpoint | Ratelimit | Return Data | Description |
| :--------------: | :------------: | :-------------: | :-------------: |
| GET /status | 50req / 5s | Object | Gets some metrics from Formidable |> Made with ❤ by @Sāya#0113