Su ASPNET Core 1.0 l'approccio (almeno al momento, le cose potrebbero cambiare) è quello di utilizzare Swagger per generare la documentazione dell'API REST e una volta fatto, è possibile utilizzare AutoRest per generare automaticamente un client in più lingue.
Per utilizzare Swagger in un App core, aggiungere nel file projects.json
:
"dependencies": {
...
"Swashbuckle": "6.0.0-rc1-final"
},
Poi nel file Startup.cs, è possibile aggiungere l'inizializzazione:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
//other uses
//this generates the swagger.json file
app.UseSwaggerGen();
//this is optional, it will generate a visual website for your documentation
app.UseSwaggerUi();
}
UseSwaggerUi
genererà un URL con contenuto "leggibile" in http://yourdomain/swagger/ui/index.html
. UseSwaggerGen
genererà il file swagger.json
in: http://yourdomain/swagger/v1/swagger.json
.
Infine, è necessario per decorare i vostri metodi di raccontare Swagger che tipo di uscita esse offrono (l'ingresso è rilevato automaticamente), con l'aggiunta di qualcosa di simile a:
[Produces(typeof(MyItemClass))]
[SwaggerResponse(System.Net.HttpStatusCode.OK, Type = typeof(MyItemClass))]
[HttpGet("{id}")]
public IActionResult Get(string id)
{
if (string.IsNullOrEmpty(id))
{
return HttpBadRequest();
}
var item = _service.GetRecord(id);
if (item == null)
{
return HttpNotFound();
}
return new ObjectResult(item);
}
speriamo vi sia utile eliminare le cose.
AGGIORNAMENTO: per generare il cliente con AutoRest basta andare al prompt dei comandi (con installato AutoRest) e individuare la cartella di progetto, quindi digitare:
autorest -Namespace YourDesiredNamespace -Input http://yourapi/swagger/v1/swagger.json
Questo creerà una cartella "generato" all'interno del tuo progetto con tutti i file e una classe proxy che puoi usare anche nel tuo file Startup.cs e definire Dependency Injection.
public void ConfigureServices(IServiceCollection services)
{
//....
services.AddSingleton<IYourApi>(provider =>
{
return new YourAPI(new Uri("http://yourapi"));
});
}
Questo non risponderà alla tua domanda, ma dovresti dare un'occhiata a AutoRest. –