Mux Router
Enruta solicitudes públicas mediante un path con alcance de propietario. No requiere autenticación.
La ruta mux es /mux/{owner_id}/*. El resto del path se reenvía a la lógica de rutas de las lambdas del propietario.
Parámetros de Path
| Parámetro | Tipo | Descripción |
|---|---|---|
owner_id |
string | Identificador del propietario |
* |
path | Resto del path reenviado al alcance del propietario |
Solicitud HTTP
curl -X GET "https://api.hola.cloud/mux/user_123/hello-world"GET /mux/user_123/hello-world HTTP/1.1
Host: api.hola.cloud
// Go 1.21+, standard library only. Save as main.go and run: go run main.go
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api.hola.cloud/mux/user_123/hello-world", nil)
if err != nil {
panic(err)
}
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
responseBody, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(resp.Status)
fmt.Println(string(responseBody))
}
<?php
// PHP 8+ with the curl extension. Save as example.php and run: php example.php
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.hola.cloud/mux/user_123/hello-world',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
]);
$response = curl_exec($ch);
if ($response === false) {
throw new Exception(curl_error($ch));
}
echo curl_getinfo($ch, CURLINFO_RESPONSE_CODE), "\n", $response, "\n";
curl_close($ch);
# Python 3.8+. Install: pip install requests. Save as example.py and run: python example.py
import requests
response = requests.request(
"GET",
"https://api.hola.cloud/mux/user_123/hello-world"
)
print(response.status_code)
print(response.text)
// Node.js 18+. Save as example.mjs and run: node example.mjs
const response = await fetch("https://api.hola.cloud/mux/user_123/hello-world", {
method: "GET"
});
console.log(response.status);
console.log(await response.text());
const response = await fetch("https://api.hola.cloud/mux/user_123/hello-world", {
method: "GET"
});
console.log(response.status);
console.log(await response.text());
// Java 17+, standard library only. Save as Main.java and run: java Main.java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
var request = HttpRequest.newBuilder()
.uri(URI.create("https://api.hola.cloud/mux/user_123/hello-world"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
var response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}Ejemplo
curl -X GET "https://api.hola.cloud/mux/user_123/hello-world"GET /mux/user_123/hello-world HTTP/1.1
Host: api.hola.cloud
// Go 1.21+, standard library only. Save as main.go and run: go run main.go
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api.hola.cloud/mux/user_123/hello-world", nil)
if err != nil {
panic(err)
}
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
responseBody, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(resp.Status)
fmt.Println(string(responseBody))
}
<?php
// PHP 8+ with the curl extension. Save as example.php and run: php example.php
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.hola.cloud/mux/user_123/hello-world',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
]);
$response = curl_exec($ch);
if ($response === false) {
throw new Exception(curl_error($ch));
}
echo curl_getinfo($ch, CURLINFO_RESPONSE_CODE), "\n", $response, "\n";
curl_close($ch);
# Python 3.8+. Install: pip install requests. Save as example.py and run: python example.py
import requests
response = requests.request(
"GET",
"https://api.hola.cloud/mux/user_123/hello-world"
)
print(response.status_code)
print(response.text)
// Node.js 18+. Save as example.mjs and run: node example.mjs
const response = await fetch("https://api.hola.cloud/mux/user_123/hello-world", {
method: "GET"
});
console.log(response.status);
console.log(await response.text());
const response = await fetch("https://api.hola.cloud/mux/user_123/hello-world", {
method: "GET"
});
console.log(response.status);
console.log(await response.text());
// Java 17+, standard library only. Save as Main.java and run: java Main.java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
var request = HttpRequest.newBuilder()
.uri(URI.create("https://api.hola.cloud/mux/user_123/hello-world"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
var response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}Respuesta
La respuesta la produce la lambda seleccionada por la ruta del propietario.
1{
2 "body": {
3 "message": "Hello from mux",
4 "path": "/hello-world"
5 }
6}
Códigos de Error
| Código | Descripción |
|---|---|
| 404 | Propietario o ruta de lambda no encontrada |
| 500 | Error de ejecución de Lambda |
Comentarios