Mise à jour des paramètres par lot
curl --request POST \
--url https://api.example.com/v1/data-apps/batch/settings \
--header 'Content-Type: application/json' \
--data '
{
"app_names": [
"<string>"
],
"settings": {}
}
'import requests
url = "https://api.example.com/v1/data-apps/batch/settings"
payload = {
"app_names": ["<string>"],
"settings": {}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({app_names: ['<string>'], settings: {}})
};
fetch('https://api.example.com/v1/data-apps/batch/settings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/data-apps/batch/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'app_names' => [
'<string>'
],
'settings' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/data-apps/batch/settings"
payload := strings.NewReader("{\n \"app_names\": [\n \"<string>\"\n ],\n \"settings\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/v1/data-apps/batch/settings")
.header("Content-Type", "application/json")
.body("{\n \"app_names\": [\n \"<string>\"\n ],\n \"settings\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/data-apps/batch/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"app_names\": [\n \"<string>\"\n ],\n \"settings\": {}\n}"
response = http.request(request)
puts response.read_body{
"updated": 123,
"apps": [
{
"app_name": "<string>",
"ok": true,
"code": "<string>"
}
]
}Publishing
Mise à jour des paramètres par lot
Appliquer le même patch de paramètres à plusieurs apps — pause ou reprise d’un cluster entier.
POST
/
v1
/
data-apps
/
batch
/
settings
Mise à jour des paramètres par lot
curl --request POST \
--url https://api.example.com/v1/data-apps/batch/settings \
--header 'Content-Type: application/json' \
--data '
{
"app_names": [
"<string>"
],
"settings": {}
}
'import requests
url = "https://api.example.com/v1/data-apps/batch/settings"
payload = {
"app_names": ["<string>"],
"settings": {}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({app_names: ['<string>'], settings: {}})
};
fetch('https://api.example.com/v1/data-apps/batch/settings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/data-apps/batch/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'app_names' => [
'<string>'
],
'settings' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/data-apps/batch/settings"
payload := strings.NewReader("{\n \"app_names\": [\n \"<string>\"\n ],\n \"settings\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/v1/data-apps/batch/settings")
.header("Content-Type", "application/json")
.body("{\n \"app_names\": [\n \"<string>\"\n ],\n \"settings\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/data-apps/batch/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"app_names\": [\n \"<string>\"\n ],\n \"settings\": {}\n}"
response = http.request(request)
puts response.read_body{
"updated": 123,
"apps": [
{
"app_name": "<string>",
"ok": true,
"code": "<string>"
}
]
}POST https://api-datahub.octoparse.com/v1/data-apps/batch/settings
Authentification : clé API requise (Authorization: Bearer <API Key>).
Interrupteurs ops réversibles pour un cluster d’apps : quand l’upstream change ou que des rate limits s’activent, mettez en pause ou reprenez beaucoup d’apps d’un coup sans toucher au cycle de vie ni aux releases.
Requête
Corps de la requête
string[]
requis
—
object
requis
—
Exemple de requête
curl -X POST \
-H "Authorization: Bearer $OCTOPARSE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"apps": ["carol/reviews-query", "carol/product-detail"], "patch": {"accepting_runs": false, "pause_message": "Upstream rate-limited; service paused"}}' \
"https://api-datahub.octoparse.com/v1/data-apps/batch/settings"
Réponse
200 succès
{
"data": {
"updated": 2,
"apps": [
{
"app": "carol/reviews-query",
"ok": true
},
{
"app": "carol/product-detail",
"ok": true
}
]
}
}
data. Champs :
integer
requis
Nombre d’apps mises à jour avec succès.
Erreurs
| HTTP | code | category | Description |
|---|---|---|---|
| 401 | unauthorized | forbidden | Clé API manquante ou invalide. |
{"error": {code, category, message, retryable}}. Voir Erreurs.