Я просматривал похожие темы в REST API, но у меня все еще есть некоторая путаница в моем проекте, в основном с PHP-частью вещей.
USPS предоставляет API REST с функциями, которые можно вызывать через URL-адрес следующим образом: https://epfws.usps.gov/ws/resources/epf/login
Чтобы успешно выполнить любой вызов, мне сказали, что объект JSON должен быть создан и передан как "параметр POST" с ожидаемыми значениями.
Это объект JSON, который необходимо передать в этом случае:
obj=
{
"login":"loginExample",
"pword":"passwordExample"
}
Мне также был предоставлен класс PHP, который должен управлять этими вызовами. Это функция входа:
public function login ()
{
// Set up the parameters for a login attempt
$jsonData = array(
'login' => $this->loginUser,
'pword' => $this->loginPass,
);
// Make a login request
$jsonResponse = $this->pullResource
('/epf/login', 'POST', $jsonData);
return $jsonResponse;
}
Поэтому у меня есть несколько вопросов относительно этого:
Документ, который они отправили,
"Чтобы сделать запросы, объект JSON должен быть создан и передан как параметр POST-формы obj = {jsonObject} по соображениям безопасности, используя контент-тип" application/x-www-form-urlencoded "".
Я знаю, что функция входа в систему содержит правильные входные значения, которые требуется API REST API USPS, но я не уверен, как передать их как "obj" или как применить "тип контента".
У меня есть "константа", определенная в верхней части моего PHP-скрипта, которая выглядит так:
const EPF_BASE_URL = ' https://epfws.usps.gov/ws/resources ';
И я заметил в реальных функциях, что эта часть ссылки оставлена без внимания, и они просто ссылаются на "/epf/login", как вы можете видеть выше. Поскольку "$ this" содержит множество разных значений, мне интересно, как он, по-видимому, находит EPF_BASE_URL по мере необходимости. Это похоже на то, как "использование" директив работает на С#?
Каков самый простой способ вызвать эту функцию и отобразить результат? Это мой самый большой вопрос. Я бы использовал отдельный PHP-класс с HTML-формой? Я понимаю концепцию того, что он должен делать, но я полностью потерял настройку среды разработки для нее.
Я пробовал все это с помощью MAMP, но мне было бы интересно узнать, нахожусь ли я на правильном пути или нет.
Если вам предоставлен класс PHP, который должен поддерживать API (надеюсь, из USPS), тогда он должен уже позаботиться о том, чтобы данные были помещены в содержимое формы, и обеспечение его представлением с соответствующим типом контента.
PHP- const
больше похожа на static string
С#. Очень вероятно, что библиотека будет использовать константу для создания конечного URL (т. EPF_BASE_URL. $resource
). Если вам нужно было работать против среды с песочницей, вы можете изменить эту константу, не изменяя весь другой код.
Это очень большой вопрос, потому что это зависит от того, как вы программируете свое приложение. Процедурные, MVC, существующие структуры и т.д.
По крайней мере, вы должны установить loginUser
и loginPass
на экземпляр объекта и вызвать метод login
в login
. Затем вы можете проверить результаты, предполагая, что результатом является объект JSON, или использовать ваш любимый метод отладки для просмотра содержимого.
У меня есть предположение как имя класса USPS API.
$uspsApi = new UspsApi();
$uspsApi->loginUser = 'username';
$uspsApi->loginPass = 'password';
$result = $uspsApi->login();
echo print_r($result, true);
pullResource()
лиpullResource()
объект JSON или нет, потому что у меня нет доступа к API. Я нашел ссылку на источник ( github.com/cpapdotcom/USPSTools ).pullResource()
по использованиюpullResource()
в других методах в EPF.php, вы можете оставить его как массив PHP, аpullResource()
преобразует его в объект JSON.