Как вызывать API в состоянии покоя - это действительно распространенная практика для разработчика, поскольку это обычная практика для представления данных, я настоятельно рекомендую вам прочитать эту тему, есть много хороших ресурсов, этот сайт один и YouTube другой, сделал быстрый поиск и нашел много об этом: https://www.youtube.com/results?search_query=intro+to+rest+c%23
К проблеме: документация чванства говорит вам все, что вам нужно знать, чтобы позвонить обслуживайте после, возьмите, например, службу аутентификации, прежде всего нам нужно знать, какой метод использует служба, в данном случае это почта. Теперь нам нужно узнать, по какому адресу мы можем позвонить в сервис. Указано в документах как: https://app.fasttestweb.com/FastTest/api/auth/simple Что мы отправляем:
{
"username": "string",
"pwd": "string",
"apiKey": "string",
"timeSent": 0,
"tokenTTL": 0
}
Если вы переключитесь на модель, вы увидите описание параметров. Вы даже можете проверить это прямо на странице, отредактировав редактируемое поле со значениями, которые вам дали, и нажав «попробовать!». в нижней части спецификации конечной точки.
Какой ответ мы получаем:
{
"apiToken": "string",
"timeGenerated": 0,
"ttl": 0
}
Чтобы назвать это, есть много способов сделать это, мне нравится делать отдельные объекты / dto's что я отправляю и получаю, а затем сериализую / десериализирую их от и до этого объекта. Поскольку у вас уже есть json. net, вот как вы делаете serialize .
. Вы можете указать указанные c json имена, чтобы они совпадали со схемой с атрибут или определение стратегии .
Когда вы получите json обратно из сервиса, вам придется десериализовать it.
Так что ваш объект obj будет выглядеть, например, следующим образом:
public class AuthBody
{
[JsonProperty("username")]
public string UserName { get; set; }
[JsonProperty("pwd")]
public string Password { get; set; }
[JsonProperty("apiKey")]
public string ApiKey { get; set; }
[JsonProperty("timeSent")]
public int TimeSent { get; set; }
[JsonProperty("tokenTTL")]
public int TokenTimeToLive { get; set; }
}
Просто настройте ответ аналогичным образом. Мне нравится использовать библиотеку под названием RestSharp для вызова служб отдыха, она доступна на nuget. Вот очень базовый пример кода c (не тестировался):
var body = new AuthBody()
{
UserName = "value",
Password = "value",
ApiKey = "value",
TimeSent = 123,
TokenTimeToLive = 10000
};
var json = JsonConvert.SerializeObject(body);
var client = new RestClient("https://app.fasttestweb.com/FastTest/api");
var request = new RestRequest("auth/simple", Method.POST, DataFormat.Json);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var jsonResponse = client.Execute(request);
AuthResponse authResponse = JsonConvert.DeserializeObject<AuthResponse>(jsonResponse.Content);
Вы также можете установить сериализатор restsharp по умолчанию на json. net, если хотите, тогда вы можете установить тело с addJsonBody вместо параметра, и вам не нужно сериализовывать ваш объект самостоятельно, больше информации доступно на RestSharp . если вы не хотите использовать RestSharp, обычный клиент называется HttpClient, а не RestClient, если вы хотите использовать его в Google.
Надеюсь, это поможет.