【问题标题】:Consuming REST API in ASP.NET Core web application在 ASP.NET Core Web 应用程序中使用 REST API
【发布时间】:2020-09-29 09:51:29
【问题描述】:

我正在尝试在 ASP.NET Core 中使用 REST API。我可以用“Hello”做一个简单的检查来检查服务是否存在!但是当我尝试使用 Getgene 时,我遇到了问题。

我想知道我是否需要在类模型中定义所有变量? 以及如何对此进行查看以将{gene_query} 从用户传递到 API?

如果您能帮助我了解 API 的初学者,我将不胜感激。

这是 rest_VariantValidator :https://rest.variantvalidator.org/ 我正在尝试使用基因查询输入来实现 VariantValidator get 方法。

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; }
       
    }

【问题讨论】:

  • " 但是当我尝试使用 Getgene 时,我遇到了问题" - 什么 问题?
  • using (var httpclient = new HttpClient()) - you are using HttpClient wrong.
  • 为什么GetgenePOST
  • @Fildor 405 错误,我不确定我是否以正确的方式使用它
  • 405 - Method not allowed。您是否碰巧需要某种登录或 API 密钥?

标签: c# api asp.net-core swagger


【解决方案1】:

研究 api https://rest.variantvalidator.org,在将其反序列化为字典之前,请参阅您的 apiResponse

【讨论】:

    猜你喜欢
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 2021-10-02
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    相关资源
    最近更新 更多