【发布时间】: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. -
为什么
Getgene是POST? -
@Fildor 405 错误,我不确定我是否以正确的方式使用它
-
405 - Method not allowed。您是否碰巧需要某种登录或 API 密钥?
标签: c# api asp.net-core swagger