mirror of
https://github.com/morten-olsen/mini-loader.git
synced 2026-02-08 01:36:26 +01:00
docs: completed v1 docs (#36)
This commit is contained in:
52
docs/03-tutorial/05-creating-an-api.md
Normal file
52
docs/03-tutorial/05-creating-an-api.md
Normal file
@@ -0,0 +1,52 @@
|
||||
## 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.
|
||||
Reference in New Issue
Block a user