Se recomienda en muchos libros de arquitectura de software que no debe poner ninguna lógica comercial en su código de controlador (API). Suponiendo que lo implemente de la manera correcta, por ejemplo, que su código de Controlador actualmente accede a la lógica comercial a través de una clase o fachada de Servicio, mi sugerencia es que reutilice la misma clase/fachada de Servicio para ese propósito, en lugar de atravesar la 'puerta principal' '(así haciendo la llamada JSON del código detrás)
básico y naieve ejemplo:
public class MyController1: ApiController {
public string CreateFile() {
var appService = new AppService();
var result = appService.CreateFile();
return result;
}
}
public class MyController2: ApiController {
public string CreateFile() {
var appService = new AppService();
var result = appService.CreateFile();
return result;
}
}
clase AppService encapsula la lógica de negocio (y vive en otra capa) y hace que sea más fácil para que usted pueda acceda a su lógica:
public class AppService: IAppService {
public string MyBusinessLogic1Method() {
....
return result;
}
public string CreateFile() {
using (var writer = new StreamWriter..blah die blah {
.....
return 'whatever result';
}
}
...
}
¿Qué quiere decir con "código subyacente"? – SLaks
@SLaks Digo que tengo un botón asp: En su evento click (lado del servidor/código subyacente), me gustaría hacer un par de cosas y luego llamar a mi acción Web API (createfile). Espero que esté claro. – Rivka
Por favor revise mi ejemplo de código. Tal vez un poco ingenuo y básico, pero es solo para ti que entiendas la idea. –