Estimado Charly buen dia.
Ayer que estaba solicitando con otros programadores la exposición de un método para recuperar datos generales de clientes,
me cometaron "Si, si la tenemos pero no publica"; entonces me surgió la pregunta con respecto a mercury.
La definición de rutas que tenemos, se puede hacer publica o privada ?
La verdad desconozco los conceptos de publico y privada y su comportamiento en un ámbito MVC.
Agradesco tu ayuda de antemano.
Un abrazo
Saludos
Osvaldo Ramirez
Publicas y privadas
-
- Mensajes: 20
- Registered for: 3 years 5 months
Perdona mi ignorancia: a que te refieres con publica y privada?
es a una ip, a una variable o ... "método para recuperar datos generales de clientes ?" de donde los quieres recuperar?
de una dbf, de sql? de un server en la nube?, de un servidor en red local?
Si lograra yo comprender, talvez te podría ayudar? o alguien más.
Saludos
es a una ip, a una variable o ... "método para recuperar datos generales de clientes ?" de donde los quieres recuperar?
de una dbf, de sql? de un server en la nube?, de un servidor en red local?
Si lograra yo comprender, talvez te podría ayudar? o alguien más.
Saludos
-
- Mensajes: 127
- Registered for: 3 years 6 months
Gracias mi estimado
Un poco mas de información :
En laravel, si no me equivoco, bajo el esquema MVC, se definién rutas, como por ejemplo
www.misuper.com/clientes >= Te muestra un grid de clientes
Si dicha ruta en el MVC no esta definida, entonces no se puede hacer nada, hasta ahi ?
Ahora, pero que tal si esta definida y el usuario intenta hacer esto :
www.misuper.com/clientes/1 => te daria el cliente numero 1
Pero no quieres que se accede por fuera, pero si quieres usar esto en tu programa de manera interna
localhost/clientes/1
Entonces mi pregunta es: "Como en MVC se le puede decir cual "route" es privada o publica"
No se si pude explicarme poquito mas
Saludos
Osvaldo Ramirez
Un poco mas de información :
En laravel, si no me equivoco, bajo el esquema MVC, se definién rutas, como por ejemplo
www.misuper.com/clientes >= Te muestra un grid de clientes
Si dicha ruta en el MVC no esta definida, entonces no se puede hacer nada, hasta ahi ?
Ahora, pero que tal si esta definida y el usuario intenta hacer esto :
www.misuper.com/clientes/1 => te daria el cliente numero 1
Pero no quieres que se accede por fuera, pero si quieres usar esto en tu programa de manera interna
localhost/clientes/1
Entonces mi pregunta es: "Como en MVC se le puede decir cual "route" es privada o publica"
No se si pude explicarme poquito mas
Saludos
Osvaldo Ramirez
-
- Site Admin
- Mensajes: 315
- Registered for: 3 years 7 months
Intenta "discriminar" conociendo la IP de origen ( hay alguna variable de entorno que puedes usar: SERVER_ADDR, SERVER_NAME, .... )
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
-
- Mensajes: 20
- Registered for: 3 years 5 months
Osvaldo: talvez yo no sea el más adecuado a contestar tu consulta, pero hice mis prueba en base a los videso de Charly con Mercury, y alli se encuentra una clase con WDO que te maneja MySql con mercury, resida este en un server local o en la nube te la comparto por aqui:
Esto se dió cuando explicaba su uso con el ejemplo "go" y si mal no recuerdo con "go.extend".
Además están los ejemplos en el foro con WDO, yo he hecho prueba con MySql tanto con server local y remoto a travez de una IP publica.
Espero que esto te aclare tu situación
Saludos
Código: Seleccionar todo
CLASS CustomerModel
DATA oDb
METHOD New() CONSTRUCTOR
METHOD RowsByState( cState )
METHOD Count()
ENDCLASS
//----------------------------------------------------------------------------//
METHOD New() CLASS CustomerModel
::oDb := WDO():Rdbms( 'MYSQL', 'localhost', 'harbour', 'password', 'dbharbour', 3306 )
RETU SELF
// -----------------------------------------------
METHOD RowsByState( cState ) CLASS CustomerModel
local aRows := {}
local hRes
hRes := ::oDb:Query( "select first, last, street from customer where state = '" + cState + "' " )
aRows := ::oDb:FetchAll( hRes, .t. )
RETU aRows
// -----------------------------------------------
METHOD Count() CLASS CustomerModel
local aRows
local nTotal
hRes := ::oDb:Query( "select count(*) as mytotal from customer" )
aRow := ::oDb:FetchAll( hRes, .t. )
nTotal := val( aRow[1][ 'mytotal' ] )
RETU nTotal
Además están los ejemplos en el foro con WDO, yo he hecho prueba con MySql tanto con server local y remoto a travez de una IP publica.
Espero que esto te aclare tu situación
Saludos
- charly
- Mensajes: 145
- Registered for: 3 years 7 months
Bon dia,
Hablas y separas perfectamente 2 conceptos propios del MVC: Enrutamiento y Autenticacion
1.- Por un lado en el router defines tu ruta que puede ser estática o dinámica. Básicamente se define de esta manera
Una ruta fija o estática:
Es la que se mas se usa, simplemente defines que cuando se use una ulr /state te ejecute el metodo state del controlador sistema.
Una ruta variable o dinámica
La diferencia estriba en el parámetro definido entre parentesis, que podra ser variable: /users/1, /users/123, ... que enrutara hacia el controlador users ejecutando el metodo info. En el metodo info tu puedes recuperar el parametro id . Creo que ya existe este ejemplo y lo podeis probar.
Hasta aqui el tema enrutamiento. Noy hay ningun misterio, solo conocer que hay estas 2 maneras de definir rutas
2.- Sobre el publico o privado es otra de las piezas que componen el MVC: El middleware.
Esto es una capa que va ligado basicamente al sistema de autenticacion. En Mercury se usa en el metodo New() cuando se define la clase. En ese punto se puede chequear si el peticionario esta autenticado. Si esta autenticado dejará ejecutar el metodo que quiere ejecutar, por ejemplo /users/1 . En el caso de no estar autenticado te echa fuera y no podras ejecutar el método.
Esto lo podeis ver ene el ejemplo app --> src/controller/app/myapp.prg Fijaos n el metodo New() que hace una validacion de autenticacion.
Como veis cada pieza en MVC se encarga de lo suyo. En este caso el enrutamiento se encarga de dirigir hacia el proceso a ejecutar mientras que el middleware se encarga si lo puedes ejecutar
Si alguien esta interesado, podemos ver un par de ejemplos y explicaciones pronto en alguna sesion, pero la base esta aqui explicada.
Hablas y separas perfectamente 2 conceptos propios del MVC: Enrutamiento y Autenticacion
1.- Por un lado en el router defines tu ruta que puede ser estática o dinámica. Básicamente se define de esta manera
Una ruta fija o estática:
Código: Seleccionar todo
DEFINE ROUTE 'state' URL 'state' CONTROLLER 'state@sistema.prg' METHOD 'GET' OF oApp
Una ruta variable o dinámica
Código: Seleccionar todo
DEFINE ROUTE 'users' URL 'users/(id)' CONTROLLER 'info@users.prg' METHOD 'GET' OF oApp
Hasta aqui el tema enrutamiento. Noy hay ningun misterio, solo conocer que hay estas 2 maneras de definir rutas
2.- Sobre el publico o privado es otra de las piezas que componen el MVC: El middleware.
Esto es una capa que va ligado basicamente al sistema de autenticacion. En Mercury se usa en el metodo New() cuando se define la clase. En ese punto se puede chequear si el peticionario esta autenticado. Si esta autenticado dejará ejecutar el metodo que quiere ejecutar, por ejemplo /users/1 . En el caso de no estar autenticado te echa fuera y no podras ejecutar el método.
Esto lo podeis ver ene el ejemplo app --> src/controller/app/myapp.prg Fijaos n el metodo New() que hace una validacion de autenticacion.
Como veis cada pieza en MVC se encarga de lo suyo. En este caso el enrutamiento se encarga de dirigir hacia el proceso a ejecutar mientras que el middleware se encarga si lo puedes ejecutar
Si alguien esta interesado, podemos ver un par de ejemplos y explicaciones pronto en alguna sesion, pero la base esta aqui explicada.
Salutacions, saludos, regards.
Charly
"...programar es fácil, hacer programas es difícil..."
https://httpd2.blogspot.com/
https://forum.modharbour.app
Charly
"...programar es fácil, hacer programas es difícil..."
https://httpd2.blogspot.com/
https://forum.modharbour.app
-
- Mensajes: 127
- Registered for: 3 years 6 months
Estimado Charly
Gracias, y entendido.
Podemos definir que el "public" en general pueda accesar sin autenticación
y los privados, puedan accesar con autenticación.
Me gusto.
Saludos
Gracias, y entendido.
Podemos definir que el "public" en general pueda accesar sin autenticación
y los privados, puedan accesar con autenticación.
Me gusto.
Saludos
- charly
- Mensajes: 145
- Registered for: 3 years 7 months
Osvaldo,
Tu lo has dicho
Yo no he inventado nada. Es un modelo de arquitectura que me limitado a portar. Cuando millones de personas lo usan es por algo, no ? Lo que pasa que requiere su estudio, esto esta claro...
EDITED: Y que conste que hay aun mas "historietas", pero que tampoco quiero que se lie mas el asunto...
C.
Tu lo has dicho
Yo no he inventado nada. Es un modelo de arquitectura que me limitado a portar. Cuando millones de personas lo usan es por algo, no ? Lo que pasa que requiere su estudio, esto esta claro...
EDITED: Y que conste que hay aun mas "historietas", pero que tampoco quiero que se lie mas el asunto...
C.
Salutacions, saludos, regards.
Charly
"...programar es fácil, hacer programas es difícil..."
https://httpd2.blogspot.com/
https://forum.modharbour.app
Charly
"...programar es fácil, hacer programas es difícil..."
https://httpd2.blogspot.com/
https://forum.modharbour.app