Red de conocimiento informático - Material del sitio web - Diseño de interfaz en línea: cómo diseñar un proyecto de interfaz de forma correcta y razonable

Diseño de interfaz en línea: cómo diseñar un proyecto de interfaz de forma correcta y razonable

Cómo diseñar las interfaces comunes de App y Web

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;

// Si el objeto especificado existe, devuelve el objeto; de lo contrario, devuelve Null

[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>// Si la operación de ejecución fue exitosa.

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.(nombre de usuario,contraseña de usuario);

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.

//// Contraseña modificada

///// Devuelve verdadero si la modificación se realizó correctamente; de ​​lo contrario, devuelve falso

publicboolModifyPassword(stringuserName,stringuserPassword)

{

varaction="ModifyPassword";

varpostData=new

p>

{

nombre de usuario=nombre de usuario,

contraseña de usuario=contraseña de usuario

}.ToJson();

stringurl=GetTokenUrl (acción);

CommonResultresult=JsonHelper.ConvertJson(url,postData);

return(resultado!=null):falso;

}

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

//

// //Una colección de objetos especificados

[[HttpGet]] es una colección de objetos que se pueden utilizar para el procesamiento de datos. HttpGet]

publicvirtualListGetAll(stringtoken)

{

//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]

publicvirtualPaggedListFindWithPager(stringcondition,PagerInfopagerInfo,stringtoken)

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

//

publicListlist{get;set;}

}

La implementación final de toda la interfaz WebAPI de procesamiento de paginación es la siguiente . Retorno>

[HttpPost]

publicvirtualPaggedListFindWithPager(stringcondition,PagerInfopagerInfo,stringtoken)