Nasıl API ASP.NET bir Web için birden fazla parametreleri geçirmek gerekir?
Bu kullanıyorum .Net MVC4 Web (umarım) Dinlendirici bir apı uygulamak için API. Sistem için birkaç parametre olarak geçmek ve o bazı eylemi gerçekleştirmek, sonuç olarak nesnelerin listesini döndürmek gerekiyor. Özellikle bunlar arasında kalan iki tarih ve dönen kayıtları taşıyorum. Ayrıca kayıtlar sonraki çağrılar sistemi yeniden işlenmiş olduğunu iade takip ediyorum.
Birkaç yaklaşım düşündüm:
Tek bir JSON dize içine kullanımı seri ve ayrı API yaratıyor. http://forums.asp.net/t/1807316.aspx/1
Sorgu dizesinde parametreler Pass.
What is best way to pass multiple query parameters to a restful api?Rota bu parametreler tanımlama: /tarih1/tarih2/denetleyici apı
Doğal olarak bana sağlayan bir POST kullanarak parametreler ile bir nesne geçmek.
ODATA araştırma Web API beri (şu anda) destekler. Henüz çok aşina değilim bununla pek çok şey yapmadım.
Uygun DİNLENME uygulamaları veri çekildiğinde, bir ELDE kullanması gerektiğini belirtmek gibi görünüyor. Ancak olur da nullipotent (üreten bir yan etkisi), ve acaba benim özel uygulama ihlal eden beri ben mark kayıtları API sistemi, dolayısıyla ben üreten yan etkileri.
Ayrıca değişken parametreleri desteklemek sorgulamaya götürdü. Eğer giriş parametre listesi değişirse, eğer bu çok fazla olursa Seçim 3 için yeniden tanımlamak için rotanızı için sıkıcı olurdu. Ve ne olursa parametreler, çalıştırma sırasında tanımlanan olabilir...
Her durumda, en iyi gibi görünüyor benim belirli bir uygulama için?
CEVAP
Ben sadece parametreleri geçirmek lazım RESTfull apı uygulamak zorunda kaldı. Mark'ın ilk örnek "/denetleyici apı?tarafından açıklandığı gibi aynı tarzda sorgu dizesi parametreleri geçirerek yaptım=tarih1&=tarih2 sonuna Başlat"
Kumanda URL split? in C#? gelen bir ihbar ederdim
// uri: /api/courses
public IEnumerable<Course> Get()
{
NameValueCollection nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query);
var system = nvc["System"];
// BL comes here
return _courses;
}
Benim durumumda Ajax ile WebApi gibi bakıyor aramıştım:
$.ajax({
url: '/api/DbMetaData',
type: 'GET',
data: { system : 'My System',
searchString: '123' },
dataType: 'json',
success: function (data) {
$.each(data, function (index, v) {
alert(index ': ' v.name);
});
},
statusCode: {
404: function () {
alert('Failed');
}
}
});
Bu yardımcı olur umarım
Nasıl bir toplu iş dosyası komut satır...
Nasıl birden fazla çalıştırmak için .B...
Nasıl aynı yazı tipi için yazı tipi bi...
Nasıl bir dize C / birden fazla satır ...
Nasıl bir HTML kabı için birden fazla ...