Использование REST API в ASP.NET Основное веб-приложение

#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 a POST ?

4. Ошибка @Fildor 405, я не уверен, правильно ли я его использую или нет

5. 405 — Метод не разрешен . Вам случайно не нужен какой-нибудь логин или ключ API?

Ответ №1:

Изучить api https://rest.variantvalidator.org , посмотрите на свой apiResponse , прежде чем десериализовать его в словарь.