Я пытаюсь использовать гем rest-client для выполнения вызовов API в целях автоматизации тестирования. Это требует, чтобы я сначала прошел аутентификацию с первоначальным запросом. Затем следующие запросы должны содержать возвращенный токен из первого запроса и адрес электронной почты пользователя. В настоящее время я застрял на том, как правильно отправить второй запрос, выполните это в пост-запросе на создание объекта.
Первый запрос на получение токена, который работает нормально и возвращает мне токен, который мне нужен:
request = '{
"user": {
"password" : "abcdefg",
"email" : "example@email.com"
}
}'
response = RestClient.post "https://moviesite.com/sign_in",
request, {
accept: "application/json",
content_type: "application/json"
}
Я сохраняю значение токена следующим образом:
results = JSON.parse(response)
puts results
token_value = results['token']
puts token_value
Второй запрос, когда я пытаюсь использовать токен для выполнения действия над объектом:
request2 = '{
"movie": {
"title": "new movie",
"status": "release"
}
}'
response2 = RestClient.post "https://moviesite.com/movies",
request2, {
accept: "application/json",
content_type: "application/json",
:Authorization => "Token token=#{token_value}, email='example@email.com'"
}
first request executes just fine and returns the token, i then try to insert the token in the second request but when the second request executes im getting an exception which makes me wonder if i correctly put it together.
Traceback (most recent call last):
9: from APITest.rb:46:in `<main>'
8: from /Users/user/.rvm/gems/ruby-2.6.3/gems/rest-client-2.1.0/lib/restclient.rb:70:in `post'
7: from /Users/user/.rvm/gems/ruby-2.6.3/gems/rest-client-2.1.0/lib/restclient/request.rb:63:in `execute'
6: from /Users/user/.rvm/gems/ruby-2.6.3/gems/rest-client-2.1.0/lib/restclient/request.rb:163:in `execute'
5: from /Users/user/.rvm/gems/ruby-2.6.3/gems/rest-client-2.1.0/lib/restclient/request.rb:727:in `transmit'
4: from /Users/user/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/net/http.rb:920:in `start'
3: from /Users/user/.rvm/gems/ruby-2.6.3/gems/rest-client-2.1.0/lib/restclient/request.rb:743:in `block in transmit'
2: from /Users/user/.rvm/gems/ruby-2.6.3/gems/rest-client-2.1.0/lib/restclient/request.rb:836:in `process_result'
1: from /Users/user/.rvm/gems/ruby-2.6.3/gems/rest-client-2.1.0/lib/restclient/abstract_response.rb:129:in `return!'
/Users/user/.rvm/gems/ruby-2.6.3/gems/rest-client-2.1.0/lib/restclient/abstract_response.rb:249:in `exception_with_response': 404 Not Found (RestClient::NotFound)