Ho un'API Web C# e sto cercando di far funzionare la documentazione della guida auto creata con IHttpActionResult. Ho rimosso l'esempio qui sotto, quindi è un po 'più facile da leggere.C# Documentazione della guida dell'API Web IHttpActionResult
Per l'oggetto, di seguito è riportato un semplice esempio. BusinessObject è solo un wrapper. CollectionBase è CollectionBase : ObservableCollection<T>, ILoadable where T : BusinessObject
. È un vecchio codice base che viene generato automaticamente ma riutilizzandolo per questo.
public class Value : BusinessObject
{
public int Id { get; set; }
}
public class Values : CollectionBase<Value>
{
public override Value LoadObject(System.Data.IDataRecord record)
{
return new Value();
}
}
Per il lato API delle cose. I seguenti lavori.
public class Values : ApiController
{
public IEnumerable<Value> GetThis()
{
Values values = new Values();
return values;
}
}
Il problema viene quando provo a fare
public IHttpActionResult GetThis()
{
Values values = new Values();
return Ok(values);
}
Non riconosce che dovrebbe utilizzare un tipo di ritorno diverso. La 'Descrizione risorsa' finisce con IHttpActionResult senza output di esempio. Ora posso aggiungere
config.SetActualResponseType(typeof(IEnumerable<Value>), "Values", "GetThis");
e mostrerà un esempio di output, ma il 'Resource Description' sarà ancora IHttpActionResult. Questo è il problema principale che sto avendo. Vorrei usare IHttpActionResult perché è molto facile da usare e può restituire i codici di errore se necessario con estrema facilità. Vorrei solo essere in grado di auto costruire la documentazione.
UPDATE: Su alcune ricerche ulteriori, ho fatto bene questo post. Resource Description on Web API Help page is showing "None."
Bazzialmente, si aggiunge l'attributo del tipo di risposta al metodo.
[ResponseType(typeof(IEnumerable<Value>))]
public IHttpActionResult GetThis()
{
Values values = new Values();
return Ok(values);
}
Anche se questo funziona tecnicamente e ho modificato il mio codice esistente per usarlo. Sarebbe comunque bello se ci fosse un modo per vederlo automaticamente in qualche modo. Non sono sicuro se sia possibile o meno.
Probabilmente si dovrebbe rispondere alla tua domanda se hai scoperto la risposta (e sì, questa è la risposta corretta; P). – julealgon
Ya, ci stavo pensando. Era come sperare che qualcuno venisse con un 'hey cambia semplicemente configurazione per vedere cosa restituisce l'OK (tipo)' e lo farebbe per ogni metodo senza dover includere l'attributo ogni volta. Lascerò senza risposta ancora per un po 'solo per vedere. –