SORU
7 HAZİRAN 2012, PERŞEMBE


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:

  1. Tek bir JSON dize içine kullanımı seri ve ayrı API yaratıyor. http://forums.asp.net/t/1807316.aspx/1

  2. Sorgu dizesinde parametreler Pass.
    What is best way to pass multiple query parameters to a restful api?

  3. Rota bu parametreler tanımlama: /tarih1/tarih2/denetleyici apı

  4. Doğal olarak bana sağlayan bir POST kullanarak parametreler ile bir nesne geçmek.

  5. 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
26 EYLÜL 2012, ÇARŞAMBA


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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fullscreen

    Fullscreen

    23 Mart 2006
  • Sorikan

    Sorikan

    3 ŞUBAT 2008
  • Yo Mama

    Yo Mama

    18 EYLÜL 2005