mirror of
https://github.com/morten-olsen/mini-loader.git
synced 2026-02-08 01:36:26 +01:00
53 lines
1.6 KiB
Markdown
53 lines
1.6 KiB
Markdown
## Creating an API Inside Your Workload
|
|
|
|
Workloads in mini loader can set up simple HTTP servers by connecting to a socket file, a feature supported by many JavaScript server libraries.
|
|
|
|
### Binding Your Workload to an HTTP Endpoint
|
|
|
|
To expose your workload as an HTTP server, specify the path parameter using the `getPath()` method provided by the `@morten-olsen/mini-loader` package. This method dynamically assigns a path for your API.
|
|
|
|
### Important Note
|
|
|
|
Please be aware that the gateway provided by mini loader isn't fully featured. As such, certain functionalities like streaming and WebSockets may not be supported.
|
|
|
|
### Example: Setting Up a Server with Fastify
|
|
|
|
Here's how you can create a simple API server using Fastify in TypeScript:
|
|
|
|
```typescript
|
|
import { http } from '@morten-olsen/mini-loader';
|
|
import fastify from 'fastify';
|
|
|
|
const server = fastify();
|
|
|
|
// Handling all requests and returning the requested URL
|
|
server.all('*', async (req) => {
|
|
return req.url;
|
|
});
|
|
|
|
// Listening on the path provided by mini loader
|
|
server.listen({
|
|
path: http.getPath(),
|
|
});
|
|
```
|
|
|
|
With this setup, your server will respond to all incoming requests by returning the requested URL.
|
|
|
|
### Deploying Your Workload
|
|
|
|
Now, you can push and run your workload just like any other script:
|
|
|
|
```bash
|
|
mini-loader loads push -r my-script.ts
|
|
```
|
|
|
|
### Accessing Your Server
|
|
|
|
After pushing your workload, mini loader will display the run ID. You can use this ID to access your server. For example, to make a request to your server, you can use `curl`:
|
|
|
|
```bash
|
|
curl http://localhost:4500/gateway/{your-run-id}
|
|
```
|
|
|
|
Replace `{your-run-id}` with the actual run ID provided by mini loader.
|