Code Monkey home page Code Monkey logo

api.arsha.io's Introduction

BDO Market API


Credits

  • Thank you to Velia Inn for initially documenting the endpoints
  • Thank you to BDO Codex for providing all item data

What is this?

A self-hostable wrapper to proxy and cache requests from Pearl Abyss' unofficial Black Desert Online Market API.

Why?

The intention behind this project is to avoid spamming PA's servers with unwanted requests, as the endpoints documented are not done so by PA officially, but by members of the community. To avoid putting an unnecessary load on PA's infrastructure, you can use this wrapper to cache requests and serve them from your own server.

How do I use it?

You can use the public instance at https://api.arsha.io, or you can host your own instance. Documentation on all available endpoints is available on Postman.

Run in Postman

How do I host my own instance?

You can host your own instance by cloning this repository and running a few commands. The only requirement is that you have Docker installed on your machine. https://docs.docker.com/get-docker/

Ideally you would also have it hosted behind a reverse proxy such as Nginx or Caddy, but this is not a requirement.

Docker Compose

Steps:

git clone https://github.com/guy0090/api.arsha.io.git
cd api.arsha.io

# Optionally, you can change the port (default: 3000) that the API runs on by editing the exposed port in compose.yaml
vi compose.yaml

# Optionally, you can also configure API default properties:
cp config/application-default.yaml config/application.yaml
vi config/application.yaml

# Build and start container
docker compose up -d

Updating:

git pull
docker compose up --build api -d

Kubernetes

A minimal Kubernetes deployment is also provided in the manifests directory.

  • This deployment assumes you have a working Kubernetes cluster and have cert-manager and nginx-ingress installed and configured.

Steps:

git clone https://github.com/guy0090/api.arsha.io.git
vi manifest/api.yaml # You'll have to adjust some values such as domain, ingress class, etc.
kubectl apply -f api.yaml

Updating:

# If you didn't change the image used, you can trigger a rollout to update the deployment to the newest tag
kubectl rollout restart deployment/api -n arsha

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.