#c# #api #asp.net-core #swagger
#c# #API #asp.net-ядро #развязность
Вопрос:
Я пытаюсь использовать REST API в ASP.NET Ядро. Я могу выполнить простую проверку с помощью «Hello», чтобы проверить, работают ли службы или нет! но когда я пытаюсь использовать Getgene, я сталкиваюсь с проблемой.
Мне было интересно, нужно ли мне определять все переменные в модели класса? И как сделать вид, чтобы это передавалось {gene_query}
от пользователя к API?
Я был бы признателен, если бы вы могли помочь мне с перспективой новичка для API.
Это rest_VariantValidator : https://rest.variantvalidator.org / Я пытаюсь реализовать метод получения VariantValidator с помощью ввода запроса gene.
VariantValidatorController.cs
public class VariantValidatorController : Controller
{
public async Task<IActionResult> Index()
{
List<VariantValidator> validators = new List<VariantValidator>();
using (var httpclient = new HttpClient())
{
using (var response = await httpclient.GetAsync("https://rest.variantvalidator.org/hello/"))
{
string apiResponse = await response.Content.ReadAsStringAsync();
var values = JsonConvert.DeserializeObject<Dictionary<string, string>>(apiResponse);
}
}
return View();
}
[HttpPost]
public async Task<IActionResult> Getgene(string gene_query)
{
using (var httpclient = new HttpClient())
{
using (var response = await httpclient.GetAsync("https://rest.variantvalidator.org/VariantValidator/variantvalidator/" gene_query ))
{
string apiResponse = await response.Content.ReadAsStringAsync();
var values = JsonConvert.DeserializeObject<Dictionary<string, string>>(apiResponse);
}
}
return View(values);
}
}
}
VariantValidator.cs
public class VariantValidator
{
public string seqrepo_db { get; set; }
public string uta_schema { get; set; }
public string variantvalidator_hgvs_version { get; set; }
public string variantvalidator_version { get; set; }
public string alt_genomic_loci { get; set; }
public string gene_ids { get; set; }
public string gene_symbol { get; set; }
public string genome_context_intronic_sequence { get; set; }
public string hgvs_lrg_transcript_variant { get; set; }
public string hgvs_lrg_variant { get; set; }
public string hgvs_predicted_protein_consequence { get; set; }
public string slr { get; set; }
public string tlr { get; set; }
public string hgvs_refseqgene_variant { get; set; }
public string hgvs_transcript_variant { get; set; }
public string primary_assembly_loci { get; set; }
public string reference_sequence_records { get; set; }
public string refseqgene_context_intronic_sequence { get; set; }
public string submitted_variant { get; set; }
public string transcript_description { get; set; }
public string validation_warnings { get; set; }
}
Комментарии:
1. » но когда я пытаюсь потребить Гетген, я сталкиваюсь с проблемой» — С какой проблемой?
2.
using (var httpclient = new HttpClient())
— вы неправильно используете HttpClient .3. Почему
Getgene
aPOST
?4. Ошибка @Fildor 405, я не уверен, правильно ли я его использую или нет
5. 405 — Метод не разрешен . Вам случайно не нужен какой-нибудь логин или ключ API?
Ответ №1:
Изучить api https://rest.variantvalidator.org , посмотрите на свой apiResponse
, прежде чем десериализовать его в словарь.