PickupPals API Documentation
Welcome to the PickupPals API documentation. This API allows you to manage temperature-controlled food storage services.
Base URL
https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1
Authentication
All API requests require authentication using API keys. Include your API key in the request headers:
X-API-Key: your_api_key_here
Vendor Endpoints
POST /vendors/register
Register a new vendor account.
curl -X POST https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/register \
-H "Content-Type: application/json" \
-d '{
"restaurantName": "Pizza Palace",
"address": "123 Main St",
"email": "contact@pizzapalace.com",
"phone": "+1234567890",
"tempRangeMin": 2,
"tempRangeMax": 8,
"password": "securepassword123"
}'
import requests
def register_vendor(vendor_data):
url = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/register"
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=vendor_data)
return response.json()
# Example usage
vendor_data = {
"restaurantName": "Pizza Palace",
"address": "123 Main St",
"email": "contact@pizzapalace.com",
"phone": "+1234567890",
"tempRangeMin": 2,
"tempRangeMax": 8,
"password": "securepassword123"
}
result = register_vendor(vendor_data)
print(f"Vendor ID: {result['vendorId']}")
async function registerVendor(vendorData) {
const response = await fetch(
'https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/register',
{
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(vendorData)
}
);
return await response.json();
}
// Example usage
const vendorData = {
restaurantName: "Pizza Palace",
address: "123 Main St",
email: "contact@pizzapalace.com",
phone: "+1234567890",
tempRangeMin: 2,
tempRangeMax: 8,
password: "securepassword123"
};
registerVendor(vendorData)
.then(result => console.log('Vendor ID:', result.vendorId))
.catch(error => console.error('Error:', error));
[
'method' => 'POST',
'header' => "Content-Type: application/json\r\n",
'content' => json_encode($vendorData)
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
return json_decode($response, true);
}
// Example usage
$vendorData = [
'restaurantName' => 'Pizza Palace',
'address' => '123 Main St',
'email' => 'contact@pizzapalace.com',
'phone' => '+1234567890',
'tempRangeMin' => 2,
'tempRangeMax' => 8,
'password' => 'securepassword123'
];
$result = registerVendor($vendorData);
echo "Vendor ID: " . $result['vendorId'];
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import com.fasterxml.jackson.databind.ObjectMapper;
public class VendorRegistration {
private static final String BASE_URL = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1";
private final HttpClient client = HttpClient.newHttpClient();
private final ObjectMapper mapper = new ObjectMapper();
public Map registerVendor(Map vendorData) throws Exception {
String requestBody = mapper.writeValueAsString(vendorData);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(BASE_URL + "/vendors/register"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse response = client.send(request,
HttpResponse.BodyHandlers.ofString());
return mapper.readValue(response.body(), Map.class);
}
public static void main(String[] args) {
try {
VendorRegistration registration = new VendorRegistration();
Map vendorData = new HashMap<>();
vendorData.put("restaurantName", "Pizza Palace");
vendorData.put("address", "123 Main St");
vendorData.put("email", "contact@pizzapalace.com");
vendorData.put("phone", "+1234567890");
vendorData.put("tempRangeMin", 2);
vendorData.put("tempRangeMax", 8);
vendorData.put("password", "securepassword123");
Map result = registration.registerVendor(vendorData);
System.out.println("Vendor ID: " + result.get("vendorId"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
POST /vendors/login
Authenticate a vendor and retrieve their account details including API keys. Successful login provides access to the vendor dashboard and API keys for service requests.
curl -X POST "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/login" \
-H "Content-Type: application/json" \
-d '{
"email": "contact@pizzapalace.com",
"password": "securepassword123"
}'
import requests
def login_vendor(email, password):
url = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/login"
headers = {"Content-Type": "application/json"}
data = {
"email": email,
"password": password
}
response = requests.post(url, json=data)
return response.json()
# Example usage
credentials = {
"email": "contact@pizzapalace.com",
"password": "securepassword123"
}
result = login_vendor(**credentials)
print(f"Vendor ID: {result['vendorId']}")
print(f"Status: {result['status']}")
print(f"API Keys: {len(result['apiKeys'])}")
async function loginVendor(email, password) {
const response = await fetch(
'https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/login',
{
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ email, password })
}
);
return await response.json();
}
// Example usage
const credentials = {
email: "contact@pizzapalace.com",
password: "securepassword123"
};
loginVendor(credentials.email, credentials.password)
.then(result => {
console.log('Vendor ID:', result.vendorId);
console.log('Status:', result.status);
console.log('API Keys:', result.apiKeys.length);
})
.catch(error => console.error('Error:', error));
[
'method' => 'POST',
'header' => "Content-Type: application/json\r\n",
'content' => json_encode([
'email' => $email,
'password' => $password
])
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
return json_decode($response, true);
}
// Example usage
$credentials = [
'email' => 'contact@pizzapalace.com',
'password' => 'securepassword123'
];
$result = loginVendor($credentials['email'], $credentials['password']);
echo "Vendor ID: " . $result['vendorId'] . "\n";
echo "Status: " . $result['status'] . "\n";
echo "API Keys: " . count($result['apiKeys']) . "\n";
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import com.fasterxml.jackson.databind.ObjectMapper;
public class VendorAuth {
private static final String BASE_URL = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1";
private final HttpClient client = HttpClient.newHttpClient();
private final ObjectMapper mapper = new ObjectMapper();
public Map login(String email, String password) throws Exception {
Map credentials = new HashMap<>();
credentials.put("email", email);
credentials.put("password", password);
String requestBody = mapper.writeValueAsString(credentials);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(BASE_URL + "/vendors/login"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse response = client.send(request,
HttpResponse.BodyHandlers.ofString());
return mapper.readValue(response.body(), Map.class);
}
public static void main(String[] args) {
try {
VendorAuth auth = new VendorAuth();
String email = "contact@pizzapalace.com";
String password = "securepassword123";
Map result = auth.login(email, password);
System.out.println("Vendor ID: " + result.get("vendorId"));
System.out.println("Status: " + result.get("status"));
List
Response Example
{
"vendorId": "vendor_123456789",
"restaurantName": "Pizza Palace",
"status": "approved",
"email": "contact@pizzapalace.com",
"tempRange": {
"min": 2,
"max": 8
},
"apiKeys": [
{
"keyId": "key_123",
"name": "Production Key",
"createdAt": "2024-01-20T10:30:00Z",
"lastUsed": "2024-01-20T15:45:00Z",
"expiresAt": "2024-02-19T15:45:00Z"
}
]
}
Error Responses
{
"error": "Invalid credentials"
}
{
"error": "Account not approved",
"status": "pending"
}
API Key Management
POST /vendors/{vendorId}/api-keys
Generate a new API key. Maximum of 3 active API keys per vendor.
curl -X POST "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/{vendorId}/api-keys" \
-H "Content-Type: application/json" \
-H "X-API-Key: your_current_api_key" \
-d '{
"name": "Production API Key",
"expiresIn": "30d"
}'
def generate_api_key(vendor_id, current_api_key, key_data):
url = f"https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/{vendor_id}/api-keys"
headers = {
"Content-Type": "application/json",
"X-API-Key": current_api_key
}
response = requests.post(url, json=key_data, headers=headers)
return response.json()
# Example usage
key_data = {
"name": "Production API Key",
"expiresIn": "30d"
}
result = generate_api_key("vendor_123", "current_api_key", key_data)
print(f"New API Key: {result['apiKey']}")
async function generateApiKey(vendorId, currentApiKey, keyData) {
const response = await fetch(
`https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/${vendorId}/api-keys`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': currentApiKey
},
body: JSON.stringify(keyData)
}
);
return await response.json();
}
// Example usage
const keyData = {
name: "Production API Key",
expiresIn: "30d"
};
generateApiKey('vendor_123', 'current_api_key', keyData)
.then(result => console.log('New API Key:', result.apiKey))
.catch(error => console.error('Error:', error));
[
'method' => 'POST',
'header' => "Content-Type: application/json\r\n" .
"X-API-Key: {$currentApiKey}\r\n",
'content' => json_encode($keyData)
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
return json_decode($response, true);
}
// Example usage
$keyData = [
'name' => 'Production API Key',
'expiresIn' => '30d'
];
$result = generateApiKey('vendor_123', 'current_api_key', $keyData);
echo "New API Key: " . $result['apiKey'];
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import com.fasterxml.jackson.databind.ObjectMapper;
public class VendorRegistration {
private static final String BASE_URL = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1";
private final HttpClient client = HttpClient.newHttpClient();
private final ObjectMapper mapper = new ObjectMapper();
public Map registerVendor(Map vendorData) throws Exception {
String requestBody = mapper.writeValueAsString(vendorData);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(BASE_URL + "/vendors/register"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse response = client.send(request,
HttpResponse.BodyHandlers.ofString());
return mapper.readValue(response.body(), Map.class);
}
public static void main(String[] args) {
try {
VendorRegistration registration = new VendorRegistration();
Map vendorData = new HashMap<>();
vendorData.put("restaurantName", "Pizza Palace");
vendorData.put("address", "123 Main St");
vendorData.put("email", "contact@pizzapalace.com");
vendorData.put("phone", "+1234567890");
vendorData.put("tempRangeMin", 2);
vendorData.put("tempRangeMax", 8);
vendorData.put("password", "securepassword123");
Map result = registration.registerVendor(vendorData);
System.out.println("Vendor ID: " + result.get("vendorId"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
GET /vendors/{vendorId}/api-keys
List all API keys for a vendor.
curl -X GET "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/{vendorId}/api-keys" \
-H "X-API-Key: your_api_key_here"
def list_api_keys(vendor_id, api_key):
url = f"https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/{vendor_id}/api-keys"
headers = {"X-API-Key": api_key}
response = requests.get(url, headers=headers)
return response.json()
# Example usage
vendor_id = "vendor_123"
api_key = "your_api_key_here"
keys = list_api_keys(vendor_id, api_key)
print(f"Total API keys: {keys['total']}")
async function listApiKeys(vendorId, apiKey) {
const response = await fetch(
`https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/${vendorId}/api-keys`,
{
headers: {
'X-API-Key': apiKey
}
}
);
return await response.json();
}
// Example usage
listApiKeys('vendor_123', 'your_api_key_here')
.then(keys => console.log('Total API keys:', keys.total))
.catch(error => console.error('Error:', error));
[
'method' => 'GET',
'header' => "X-API-Key: {$apiKey}\r\n"
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
return json_decode($response, true);
}
// Example usage
$keys = listApiKeys('vendor_123', 'your_api_key_here');
echo "Total API keys: " . $keys['total'];
public Map listApiKeys(String vendorId, String apiKey)
throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(BASE_URL + "/vendors/" + vendorId + "/api-keys"))
.header("X-API-Key", apiKey)
.GET()
.build();
HttpResponse response = client.send(request,
HttpResponse.BodyHandlers.ofString());
return mapper.readValue(response.body(), Map.class);
}
Response Example
{
"apiKeys": [
{
"keyId": "key_123",
"name": "Production API Key",
"createdAt": "2024-01-20T10:30:00Z",
"lastUsed": "2024-01-20T15:45:00Z",
"expiresAt": "2024-02-19T15:45:00Z",
"isActive": true
}
],
"total": 1,
"remaining": 2
}
DELETE /vendors/{vendorId}/api-keys/{keyId}
Delete an existing API key.
curl -X DELETE "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/{vendorId}/api-keys/{keyId}" \
-H "X-API-Key: your_api_key_here"
def delete_api_key(vendor_id, key_id, api_key):
url = f"https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/{vendor_id}/api-keys/{key_id}"
headers = {"X-API-Key": api_key}
response = requests.delete(url, headers=headers)
return response.json()
# Example usage
vendor_id = "vendor_123"
key_id = "key_123"
api_key = "your_api_key_here"
result = delete_api_key(vendor_id, key_id, api_key)
print(f"Status: {result['status']}")
async function deleteApiKey(vendorId, keyId, apiKey) {
const response = await fetch(
`https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/${vendorId}/api-keys/${keyId}`,
{
method: 'DELETE',
headers: {
'X-API-Key': apiKey
}
}
);
return await response.json();
}
// Example usage
deleteApiKey('vendor_123', 'key_123', 'your_api_key_here')
.then(result => console.log('Status:', result.status))
.catch(error => console.error('Error:', error));
[
'method' => 'DELETE',
'header' => "X-API-Key: {$apiKey}\r\n"
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
return json_decode($response, true);
}
// Example usage
$result = deleteApiKey('vendor_123', 'key_123', 'your_api_key_here');
echo "Status: " . $result['status'];
public Map deleteApiKey(String vendorId, String keyId, String apiKey)
throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(BASE_URL + "/vendors/" + vendorId + "/api-keys/" + keyId))
.header("X-API-Key", apiKey)
.DELETE()
.build();
HttpResponse response = client.send(request,
HttpResponse.BodyHandlers.ofString());
return mapper.readValue(response.body(), Map.class);
}
Response Example
{
"status": "success",
"message": "API key deleted successfully"
}
Service Endpoints
POST /service/requests
Create a new temperature-controlled storage request.
curl -X POST https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/service/requests \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{
"orderId": "order_123",
"temperature": 65,
"duration": 60,
"notes": "Handle with care"
}'
import requests
def create_service_request(api_key, request_data):
url = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/service/requests"
headers = {
"Content-Type": "application/json",
"X-API-Key": api_key
}
response = requests.post(url, json=request_data, headers=headers)
return response.json()
# Example usage
api_key = "your_api_key_here"
request_data = {
"orderId": "order_123",
"temperature": 65,
"duration": 60,
"notes": "Handle with care"
}
result = create_service_request(api_key, request_data)
print(f"Request ID: {result['requestId']}")
async function createServiceRequest(apiKey, requestData) {
const response = await fetch(
'https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/service/requests',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': apiKey
},
body: JSON.stringify(requestData)
}
);
return await response.json();
}
// Example usage
const apiKey = 'your_api_key_here';
const requestData = {
orderId: 'order_123',
temperature: 65,
duration: 60,
notes: 'Handle with care'
};
createServiceRequest(apiKey, requestData)
.then(result => console.log('Request ID:', result.requestId))
.catch(error => console.error('Error:', error));
[
'method' => 'POST',
'header' => "Content-Type: application/json\r\n" .
"X-API-Key: {$apiKey}\r\n",
'content' => json_encode($requestData)
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
return json_decode($response, true);
}
// Example usage
$apiKey = 'your_api_key_here';
$requestData = [
'orderId' => 'order_123',
'temperature' => 65,
'duration' => 60,
'notes' => 'Handle with care'
];
$result = createServiceRequest($apiKey, $requestData);
echo "Request ID: " . $result['requestId'];
public class ServiceRequest {
private static final String BASE_URL = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1";
private final HttpClient client = HttpClient.newHttpClient();
private final ObjectMapper mapper = new ObjectMapper();
public Map createRequest(String apiKey, Map requestData)
throws Exception {
String requestBody = mapper.writeValueAsString(requestData);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(BASE_URL + "/service/requests"))
.header("Content-Type", "application/json")
.header("X-API-Key", apiKey)
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse response = client.send(request,
HttpResponse.BodyHandlers.ofString());
return mapper.readValue(response.body(), Map.class);
}
public static void main(String[] args) {
try {
ServiceRequest service = new ServiceRequest();
Map requestData = new HashMap<>();
requestData.put("orderId", "order_123");
requestData.put("temperature", 65);
requestData.put("duration", 60);
requestData.put("notes", "Handle with care");
String apiKey = "your_api_key_here";
Map result = service.createRequest(apiKey, requestData);
System.out.println("Request ID: " + result.get("requestId"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Response Example
{
"requestId": "req_123456789",
"status": "pending",
"temperature": {
"target": 65,
},
"duration": {
"minutes": 60,
"startTime": null
},
"orderId": "order_123",
"notes": "Handle with care"
}
GET /service/requests/{requestId}
Get the status and details of a specific service request.
curl -X GET "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/service/requests/{requestId}" \
-H "X-API-Key: your_api_key_here"
def get_service_status(request_id, api_key):
url = f"https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/service/requests/{request_id}"
headers = {"X-API-Key": api_key}
response = requests.get(url, headers=headers)
return response.json()
# Example usage
request_id = "req_123456789"
api_key = "your_api_key_here"
status = get_service_status(request_id, api_key)
print(f"Status: {status['status']}")
async function getServiceStatus(requestId, apiKey) {
const response = await fetch(
`https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/service/requests/${requestId}`,
{
headers: {
'X-API-Key': apiKey
}
}
);
return await response.json();
}
// Example usage
getServiceStatus('req_123456789', 'your_api_key_here')
.then(status => console.log('Status:', status))
.catch(error => console.error('Error:', error));
[
'method' => 'GET',
'header' => "X-API-Key: {$apiKey}\r\n"
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
return json_decode($response, true);
}
// Example usage
$status = getServiceStatus('req_123456789', 'your_api_key_here');
echo "Status: " . $status['status'];
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import com.fasterxml.jackson.databind.ObjectMapper;
public class TemperatureMonitor {
private static final String BASE_URL = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1";
private final HttpClient client = HttpClient.newHttpClient();
private final ObjectMapper mapper = new ObjectMapper();
public Map getTemperature(String requestId, String apiKey) throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(BASE_URL + "/temperature/" + requestId))
.header("X-API-Key", apiKey)
.GET()
.build();
HttpResponse response = client.send(request,
HttpResponse.BodyHandlers.ofString());
return mapper.readValue(response.body(), Map.class);
}
public static void main(String[] args) {
try {
TemperatureMonitor monitor = new TemperatureMonitor();
Map data = monitor.getTemperature(
"req_123456789",
"your_api_key_here"
);
System.out.printf("Current temperature: %f°C%n", data.get("temperature"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Response Example
{
"temperature": 65.5,
"timestamp": "2024-01-20T15:45:00Z",
"status": "active",
}
Error Handling
Error Codes
Status Code | Description | Example |
---|---|---|
400 | Bad Request - Invalid input parameters |
|
401 | Unauthorized - Invalid or missing API key |
|
403 | Forbidden - Insufficient permissions |
|
404 | Not Found - Resource doesn't exist |
|
429 | Too Many Requests - Rate limit exceeded |
|
500 | Internal Server Error |
|
Rate Limiting
The API implements rate limiting to ensure fair usage. Limits are applied per API key.
Endpoint | Rate Limit | Window |
---|---|---|
Temperature Monitoring | 60 requests | per minute |
All Other Endpoints | 100 requests | per minute |
Rate Limit Headers
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1516131012
Temperature Endpoints
GET /temperature/{requestId}
Get the current temperature for a specific request.
Required: API Key in X-API-Key header
curl -X GET "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/temperature/{requestId}" \
-H "X-API-Key: your_api_key_here"
import requests
def get_temperature(request_id, api_key):
url = f"https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/temperature/{request_id}"
headers = {
"X-API-Key": api_key
}
response = requests.get(url, headers=headers)
return response.json()
# Example usage
request_id = "req_123456789"
api_key = "your_api_key_here"
temperature_data = get_temperature(request_id, api_key)
print(f"Current temperature: {temperature_data['temperature']}°C")
async function getTemperature(requestId, apiKey) {
const response = await fetch(
`https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/temperature/${requestId}`,
{
headers: {
'X-API-Key': apiKey
}
}
);
const data = await response.json();
return data;
}
// Example usage
const requestId = 'req_123456789';
const apiKey = 'your_api_key_here';
getTemperature(requestId, apiKey)
.then(data => console.log(`Current temperature: ${data.temperature}°C`))
.catch(error => console.error('Error:', error));
[
'method' => 'GET',
'header' => "X-API-Key: {$apiKey}\r\n"
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
return json_decode($response, true);
}
// Example usage
$requestId = 'req_123456789';
$apiKey = 'your_api_key_here';
$data = getTemperature($requestId, $apiKey);
echo "Current temperature: " . $data['temperature'] . "°C";
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import com.fasterxml.jackson.databind.ObjectMapper;
public class TemperatureMonitor {
private static final String BASE_URL = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1";
private final HttpClient client = HttpClient.newHttpClient();
private final ObjectMapper mapper = new ObjectMapper();
public Map getTemperature(String requestId, String apiKey) throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(BASE_URL + "/temperature/" + requestId))
.header("X-API-Key", apiKey)
.GET()
.build();
HttpResponse response = client.send(request,
HttpResponse.BodyHandlers.ofString());
return mapper.readValue(response.body(), Map.class);
}
public static void main(String[] args) {
try {
TemperatureMonitor monitor = new TemperatureMonitor();
Map data = monitor.getTemperature(
"req_123456789",
"your_api_key_here"
);
System.out.printf("Current temperature: %f°C%n", data.get("temperature"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Response Example
{
"temperature": 65.5,
"timestamp": "2024-01-20T15:45:00Z",
"status": "active",
}