hyperf / hyperf/hyperf

RPC响应码非200即被T掉,需要进行优化。

Offen
#1,783 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
PHP
Sterne
6.9k
Forks
1.3k
Ø Merge
4 Std. 21 Min.
Gemergte PRs (30 T.)
4

Beschreibung

hyperf/json-rpc/src/JsonRpcHttpTransporter.php

``` public function send(string $data)
{
$node = $this->getNode();
$uri = $node->host . ':' . $node->port;
$schema = value(function () use ($node) {
$schema = 'http';
if (property_exists($node, 'schema')) {
$schema = $node->schema;
}
if (! in_array($schema, ['http', 'https'])) {
$schema = 'http';
}
$schema .= '://';
return $schema;
});
$url = $schema . $uri;
$response = $this->getClient()->post($url, [
'headers' => [
'Content-Type' => 'application/json',
],
'http_errors' => false,
'body' => $data,
]);
if ($response->getStatusCode() === 200) {
return $response->getBody()->getContents();
}
$this->loadBalancer->removeNode($node);

return '';
}
```

响应码 [200, 300) 应该都是合理的,另外如果用户的错误码规范完全遵循HTTP规范,即如果数据不存在,会返回 404,这种情况也需要被考虑。

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne in hyperf/json-rpc/src/JsonRpcHttpTransporter.php bei send(). Überprüfe, wie der Antwortstatus behandelt wird, und verifiziere das vorgesehene Verhalten für erfolgreiche 2xx-Antworten und HTTP-definierte Fehler wie 404, einschließlich der Frage, ob der Node entfernt werden sollte.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
php
Bereich
api, backend
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.