Я пытаюсь сделать запрос API GET конечной точке на моем Chef Server и задавался вопросом, как я могу использовать свое имя пользователя и имя пользователя.pem, чтобы успешно выполнить запрос. В настоящее время я использую структуру extJS для выполнения этого действия.Использование заголовков аутентификации в REST API Proxy, extJS и chef
У меня есть приложение очень похожее на это:
Где я хотел бы, чтобы отобразить результаты запроса GET к сетке.
Использование веб-сайта REST тестирования API (REST API testing), я был в состоянии сделать простой запрос со следующим кодом:
var listOfCookbooks = Ext.create('Ext.data.Store', {
autoLoad: true,
autoSync: true,
model: 'Optional Cookbooks',
proxy: {
type: 'rest',
url: 'http://jsonplaceholder.typicode.com/posts',
reader: {
type: 'json',
rootProperty: 'data'
},
writer: {
type: 'json'
}
},
listeners: {
write: function(store, operation) {
var record = operation.getRecords()[0],
name = Ext.String.capitalize(operation.action),
verb;
}
}
});
Раньше я был с помощью PHP обертке совершать вызовы к API Chef Server, который позволил мне установить мое имя пользователя и username.pem файл:
<?php
use Guzzle\Http\Client;
use LeaseWeb\ChefGuzzle\Plugin\ChefAuth\ChefAuthPlugin;
// Supply your client name and location of the private key.
$chefAuthPlugin = new ChefAuthPlugin("my-dashboard", "my-dashboard.pem");
// Create a new guzzle client
$client = new Client('https://manage.opscode.com');
$client->addSubscriber($chefAuthPlugin);
// Now you can make calls to the chef server
$response = $client->get('/organizations/my-organization/nodes')->send();
$nodes = $response->json();
?>
Благодарность
Да, это именно то, о чем я думаю. Мне удалось настроить PHP-код в моем проекте, поэтому я продолжу использовать эту оболочку. Спасибо за подсказку – rafa
Существует RFC Chef, который был принят, но никогда не реализован, чтобы добавить режим аутентификации токена к API-интерфейсу сервера, что сделало бы это намного проще (прокси-сервер выдаст кратковременный токен и передаст его браузеру). Возможно когда-нибудь :) – coderanger