Как вызывать api внутри localhost

у меня есть настроенный nginx который имеет сертификаты подписанные доверенным центром. вот конфигурация

root /var/www/html;
        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name site.ru;
        ssl_certificate $HOME/.site.crt;
        ssl_certificate_key $HOME/.site.key;
        if ($scheme != "https") {
                return 301 https://localhost:8282$request_uri;
        }
        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                proxy_pass http://localhost:8282/;
        }

За этим nginx на 8282 порту висит сервер golang с api. Если я пытаюсь обратиться к api из другой сети(например браузер в смартфоне+мобильные дынные) по https://domain.name/myapi/?param1=value, при условии что api не получает данные от других api на этом же сервере, то я получаю ответ от своего сервера корректный. Но если я пытаюсь вызвать api которые внутри себя вызывают еще какие то api, то получаю некорректный результат, так как api не могут общаться между собой находясь в одной сети(на одном компе). Например такое

func Create_user(w http.ResponseWriter, r *http.Request) {
    encode_data := Get_encoded_form_values(w, r)
    decode_data := JSON_struct{}
    tmplsrv.Decoding(encode_data, &decode_data)
    params := url.Values{
        "email":    {r.FormValue("email")},
        "password": {r.FormValue("password")},
    }
    //обращаюсь к дргому api который проверит есть ли такой пользователь в базе
    check_user_answer := Requester("https://localhost/check_user/", w, r, encode_data, params)
    answer := Answer{}
    tmplsrv.Decoding(check_user_answer, &answer)
    if answer.Answr == "NotFound" {
        //Обращаюсь к другому api за новыйм токеном
        new_token_answer := Requester("https://localhost/create_token/", w, r, encode_data, params)
        tmplsrv.Decoding(new_token_answer, &answer)
        decode_data.JWT_token = answer.Answr
        database.Inserting_user_in_db(tmplsrv.Encoding(decode_data))
        w.WriteHeader(http.StatusCreated)
        w.Write([]byte("created"))
    }
    if answer.Answr == "" {
        // я всегда попадаю в это условие так как не удалось обратиться к api которые проверяют наличие пользователя и которые получают новый токен для нового пользователя
        w.Write([]byte("Unable to create user"))
    } else {
        w.Write([]byte("User exists"))
    }
}

Но если я отключу свой nginx то смогу обращаться к api по внутреннему ip:port/uri?values.

Если использовать мой домен для общения api друг с другом, то тоже ничего не выходит. Как настроить чтобы api могли общаться между собой находясь в localhost-е не отказвыясь при этом от nginx?


Ответы (1 шт):

Автор решения: Quester

Заработало при использовании http://localhost:8282/uri?value при вызове api из api

→ Ссылка