Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cameronpcampbell/openblox
An API wrapper for Roblox, written in Typescript. Fully typesafe, optional caching, use any http client.
https://github.com/cameronpcampbell/openblox
roblox roblox-api roblox-api-wrapper roblox-apis roblox-dev roblox-developers roblox-development roblox-opencloud
Last synced: 5 days ago
JSON representation
An API wrapper for Roblox, written in Typescript. Fully typesafe, optional caching, use any http client.
- Host: GitHub
- URL: https://github.com/cameronpcampbell/openblox
- Owner: cameronpcampbell
- License: mit
- Created: 2023-07-28T18:56:29.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-23T16:45:04.000Z (22 days ago)
- Last Synced: 2024-10-23T19:23:31.424Z (22 days ago)
- Topics: roblox, roblox-api, roblox-api-wrapper, roblox-apis, roblox-dev, roblox-developers, roblox-development, roblox-opencloud
- Language: TypeScript
- Homepage: https://open.blox.wiki
- Size: 1.16 MB
- Stars: 20
- Watchers: 3
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.MD
Awesome Lists containing this project
- awesome-roblox - Openblox - API wrapper for Roblox, written in Typescript. Fully typesafe, optional caching, use any http client. (Libraries / API Wrappers)
README
Openblox allows your typescript (and javascript) codebase to communicate with the Roblox API extemely easily.
It wraps over 100+ Roblox API endpoints, each with its own strictly typed response data. Typings were written manually as opposed to programatically generating them to ensure the strictest possible type-safety.
- Automatically handles csrf tokens.
- Prettifies / formats responses from the Roblox API to be developer friendly as possible, and to maintain a consistant (see Prettification).
- All results from Openblox methods return the underlying http response with it.- Easily iterate over paginated endpoints (see Pagination).
- Each Openblox method utilises only one Roblox API endpoint to ensure clarity and efficiency in your codebase.
- Scarcely utilise classes to allow for treeshaking.
- - -
Example Usage
```ts
import "dotenv/config";
import { setConfig } from "openblox/config";
import { UsersApi } from "openblox/cloud";
import { ClassicUsersApi } from "openblox/classic"; // Classic (BEDEV & BEDEV2) APIs will always be prefixed with `Classic`./*
Naming your Roblox Cookie environment variable `ROBLOX_COOKIE` will automatically
import it into your Openblox config, therefore voiding the need to set it in the config
manually. Similarly, naming your OpenCloud API Key environment variable `ROBLOX_CLOUD_KEY`
will also automatically import it into your Openblox config.
*/
setConfig({
cookie: process.env.MY_ROBLOX_COOKIE,
cloudKey: process.env.MY_ROBLOX_CLOUD_KEY
})(async () => {
const { data:userInfo_classic } = await ClassicUsersApi.userInfo({ userId: 45348281 })
const { data:userInfo_cloud } = await UsersApi.userInfo({ userId: 45348281 })
})
```See more examples [here](https://github.com/MightyPart/openblox/tree/main/examples)!
- - -
Openblox Methods
Openblox methods all return an object containing the following
```ts
const {
data: unknown, // The prettified / formatted data from the Roblox api endpoint (As an optimisation, prettification / formatting only happens once accessed / destructured).response: HttpResponse, // The http response from the Roblox api endpoint. The raw unprettified data can be accessed via `response.body`.
cursors: { next: string, previous: string }, // Only exists on paginated endpoints. Contains the previous and next cursor.
} = OpenbloxApi.method(...)
```- - -