Diseño de interfaz en línea: cómo diseñar un proyecto de interfaz de forma correcta y razonable
1 Al definir la interfaz, determine si es MVC GET o POST
Ya que toda nuestra plataforma WebAPI se basa en MVC para API. Desarrollado, por lo que al definir toda la interfaz WebAPI, la interfaz que generalmente debe declararse es [HttpGet] o [HttpPost]. Aunque es posible que algunas interfaces no se declaren, para evitar mensajes de error similares a los siguientes, declare claramente la interfaz. , Evite proyectos. O [HttpPost], aunque es posible que algunas interfaces no estén declaradas, para evitar mensajes de error como los siguientes, sigue siendo beneficioso declararlas explícitamente.
El recurso solicitado no admite el método http "POST"
Por ejemplo, la interfaz de objeto de búsqueda definida en la clase base es la siguiente. gt;
//
[HttpGet]
publicvirtualTFindByID ( stringid, stringtoken)
Si la interfaz se utiliza para agregar, eliminar o modificar, generalmente debe declararse para enviar datos en modo POST y, por razones de seguridad, es necesario transportar más parámetros. p>//
publicCommonResultModifyPassword(JObjectparam,stringtoken)
{
/// Verificación del token, si falla, se generará una excepción
CheckResultcheckResult = CheckToken(token);
dynamicobj=param;
if(obj!=null)
{
stringuserName=;
stringuserPassword=;
boolsuccess=BLLFactory
returnnewCommonResult(éxito);
}
else
{
thrownewMyApiException("Se produjo un error al pasar parámetros.") )
}
}
Cuando convertimos el objeto JObject en el objeto que necesitamos, dado que no definimos una clase de entidad específica, usamos sintaxis dinámica, que declara que se trata de un objeto dinámico, y las propiedades correspondientes son obtenido por el tiempo de ejecución.
dynamicobj=param;
De esta manera, podemos PUBLICAR dinámicamente el objeto JSON correspondiente en la interfaz WebAPI en el momento de la llamada sin tener que predefinir varios parámetros de interfaz de la clase.
////
/////
publicboolModifyPassword(stringuserName,stringuserPassword)
{
varaction="ModifyPassword";
varpostData=new p>
p>
{
nombre de usuario=nombre de usuario,
contraseña de usuario=contraseña de usuario
}.ToJson();
stringurl=GetTokenUrl (acción);
CommonResultresult=JsonHelper
return(resultado!=null):falso; p>
}
Entre ellos, GetTokenUrl construirá la dirección de envío completa en función de parámetros como el token y la dirección API. Podemos pasar el código anterior
varpostData=new
{
userName=userName,
userPassword=userPassword
}.ToJson();
Para crear dinámicamente un objeto, genere su cadena JSON, envíe los datos POST a la interfaz API correspondiente y luego complete la conversión del resultado del objeto.
3. Colecciones y paginación
En muchas interfaces, necesitamos utilizar el procesamiento de paginación, y WebAPI no es una excepción. Esto puede mejorar la eficiencia de la recuperación de datos y reducir la presión sobre el servidor. procesamiento de datos, y también enviar la velocidad de visualización de datos del cliente.
El conjunto general de definiciones de interfaz es el siguiente (interfaz de clase base genérica).
//
// Devuelve la colección de todos los objetos de la base de datos
//
// //
[[HttpGet]] es una colección de objetos que se pueden utilizar para el procesamiento de datos. HttpGet]
publicvirtualList
{
//Compruebe si el usuario tiene permiso; de lo contrario, se generará MyDenyAccessException
(,token);
Lista<T>list=();
returnlist;
}
Pero se devuelve así Habrá muchos registros y generalmente se requiere paginación, por lo que la definición de interfaz para el procesamiento de paginación es la siguiente. devuelve>
[HttpPost]
publicvirtualPaggedList
La interfaz de paginación utiliza una PageList para devolver los resultados genéricos. clase, que nos facilita obtener el registro actual y el número total de registros. Su definición es la siguiente.
publicclassPaggedList
{
//
//Devuelve el número total de registros
///< /summary>
publicinttotal_ count{get;set;}
// // colección de listas //
publicList
}
La implementación final de toda la interfaz WebAPI de procesamiento de paginación es la siguiente . Retorno>
[HttpPost]
publicvirtualPaggedList