ax ios почтовые запросы иногда завершаются ошибкой с кодом состояния (500 или 401) в приложении node.js - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь сделать POST-запросы к API с приложением node.js. В настоящее время приложение запускает около 102 почтовых запросов к API.
Около 70% запросов возвращают код состояния 201, остальные запросы возвращают код состояния 500 и еще меньше код состояния 401.

Я тестировал те же запросы с помощью Postman Collection Runner, с задержкой 0 ms, все они успешно выполняются с кодом состояния 201.

Вот мой файл узла api.js:

import axios from "axios";

const API_BASE_URL = "https://some.api.endpoint"
const HEADER = {
    'auth': {
        'username': 'someUser',
        'password': 'somePassword'
    },
    'Content-Type': 'application/json'
}

class HarborApi {
    getRegistries = () => {
        return axios.get(API_BASE_URL + '/registries', HEADER)
            .then(res => res.data === null ? [] : res.data)
            .catch(error => console.log(error.response.data))
    }
    getRegistryByName = (name) => {
        return axios.get(API_BASE_URL + '/registries', HEADER)
            .then(res => res.data.filter(r => r.name === name)[0])
            .catch(error => console.log(error.response.data))
    }
    addRegistry = (harborRegistry) => {
        return axios.post(API_BASE_URL + '/registries', harborRegistry, HEADER)
            .then(res => res)
            .catch(error => console.log(responseError(error)))
    }
    getReplicationRules = () => {
        return axios.get(API_BASE_URL + '/replication/policies', HEADER)
            .then(res => res.data)
            .catch(error => console.log(responseError(error)))
    }
    addReplicationRule = (harborReplicationRule) => {
        return axios.post(API_BASE_URL + '/replication/policies', harborReplicationRule, HEADER)
            .then(res => res)
            .catch(error => console.log(responseError(error)))
    }
    executeReplicationRuleById = (id) => {
        return axios.post(API_BASE_URL + '/replication/executions', {"policy_id": id}, HEADER)
            .then(res => res)
            .catch(error => console.log(responseError(error)))
    }
}

const responseError = (error) => {
    return {
        "status": error.response.status,
        "statusText": error.response.statusText,
        "payload": error.config.data,
        "error": JSON.stringify(error.response.data),
        "error_message": error.message
    }
}

export default new HarborApi();

и вот выдержка из журнала приложения узла:

executing replication rule: eu.gcr.io/gardener-project/gardener/terminal-controller-manager:v0.8.0 -> status: 201
executing replication rule: k8s.gcr.io/kube-proxy:v1.18.2 -> status: 201
executing replication rule: quay.io/jetstack/cert-manager-controller:v0.9.1 -> status: 201
executing replication rule: quay.io/jetstack/cert-manager-cainjector:v0.15.1 -> status: 201
executing replication rule: hub.docker.com/goharbor/registry-photon:dev -> status: 201
executing replication rule: quay.io/coreos/configmap-reload:v0.0.1 -> status: 201
executing replication rule: k8s.gcr.io/cluster-proportional-autoscaler-amd64:1.7.1 -> status: 201
{
  status: 500,
  statusText: 'Internal Server Error',
  payload: '{"policy_id":755}',
  error: '{"errors":[{"code":"UNKNOWN","message":"internal server error"}]}',
  error_message: 'Request failed with status code 500'
}
{
  status: 401,
  statusText: 'Unauthorized',
  payload: '{"policy_id":805}',
  error: '{"errors":[{"code":"UNAUTHORIZED","message":"UnAuthorized"}]}',
  error_message: 'Request failed with status code 401'
}
executing replication rule: hub.docker.com/goharbor/harbor-registryctl:dev -> status: 201

Была ли у кого-то такая же проблема с axios, или я что-то пропустил? Если вам нужны расширенные журналы или информация, не стесняйтесь спрашивать.

...