si estan pasando esta api a produccion en un cpanel. tienen que agregarle debajo de los "include" del archivo post.php esto: header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); pues hay servidores que no permiten la accesibilidad remota
Me pasaba lo mismo, si funciona, pero se deben enviar los datos a actualizar como parámetros: localhost/example/post.php?id=4&content=Prueba para actualizar (osea al probar en el postman, debe enviarse como en Params)
Hola, gracias por la información. Tengo una duda en cuestión del método de actualizar, no comprendo como mandar los valores si solo tiene un arreglo $fields. Te agradecería si me pudieses aclarar esa duda por favor, saludos.
Hola, si se puede tener accesos simultaneos y si Apache es quien se encarga de eso. Pero Apache no es muy bueno, es mucho mejor usar nginx, cuando tenia mi blog en Apache comenzo a sentirse muy lento, pero con solo cambiar a Nginx mejoro muchisimo.
Hola, tengo una duda, estoy aprendiendo php pero me surge la duda de que diferencia existe entre hacer una api para consultar o meter datos en la tabla y/o hacer directo la consulta o un append. Saludos.
para hacer la consulta necesitás tener tu propia vista que muestre los resultados o por la cual ingresar datos a la DB. Si hacés una API, esas consultas las podés gestionar desde Postman por ejemplo, sin necesidad de tener tu propia vista, ya que estarías separando tu backend del frontend
Muchas gracias, por fin me quedo claro como es que funciona esto, pero necesito una ayuda urgente, por que me funciona con algunas tablas y con otras no, me refiero que en algunas tablas solo funciona con el get id, pero no hace el select *, o hay un límite de registros y columnas que puede mostrar, lo busque en google pero nada menciona eso, muchas gracias de antemano
Cordial saludo. Excelente video. Cuál sería el comando para solicitarle a la API un GET/POST desde un navegador, o una app en python/C# y no desde postman? Gracias por compartir sus conocimientos.
Parece sencillo pero cuando tengas que sacar información de tablas relacionales ahí se complica al usar los INNER JOIN en el Api rest y hacerlo de forma dinámica ya son palabras mayores , porque sólo muestran lo fácil.
Disculpen mi ignorancia, esto es un RestFull? ( es que vi otros con frameworks pero no se que diferencia hay ) aparte, como sería esto de la mano con Ajax?
Que tal amigos, a mi me estaba pasando que mis registros tenían "ñ" o tildes, y por lo tanto no me traia registros en mi consulta, esto lo solucione poniendo al inicio $sql = $dbConn->prepare("SET NAMES 'utf8'"); $sql->execute();
en mi caso mi campo id se llama ids y es de tipo bigint, le quite la comilla simple al igualar en el where $postId = $input['ids']; $fields = getParams($input); echo $fields; $sql = " UPDATE tabla SET $fields WHERE ids=$postId con estos cambios funciono....
Hola tengo una duda cual es la diferencia en servicio web Json y RestFul, porque en tu video vi el código fuente y me di cuenta que tu servicio web es Json.
Hola, los servicios web tradicional se basan en xml esto hace que usen mas espacio y sean mas complicados. Los servicios restful usan json. Cuando escuches rest, restful, servicio web json, son lo mismo. Cuando escuches servicio web usualmente se refieren a un servicio que usa xml y un wsdl. Aqui hay un articulo en donde esta todo bien explicado. codigonaranja.com/restful-web-service Gracias por comentar
Hola! implemente tu codigo y funciona siempre y cuando instale postman en la PC, cuando lo ejecuto en el navegador me tira el siguiente error: "Cloud Agent Error: Can not send requests to reserved address. Make sure address is publicly accessible or select a different agent" ¿sabe como lo puedo solucionar? me interesa que mi api rest este en servidor local y sea llamado desde otro dispositivo de la misma red LAN solo que este sea un app web
Hola, es por que si tu servicio o api esta local solo puede ser usado en tu computadora, para que sea accesible desde cualquier parte debe estar publicado en un servidor con una ip publica
Hola muchas gracias porel tutorial, muy sencillo y bien explicado. Pero tengo un problema con el metodo POST me devuelve este error en los logs: thrown in /home/rtfgd/public_html/api/post.php on line 44 [26-Jul-2020 22:44:03 Europe/Madrid] PHP Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound in /home/rtfgd/public_html/api/post.php:44 Esto es lo que tengo en post
Hola, revise tu código y el problema está en el SQL del método post, tú tienes $sql = "INSERT INTO restaurants (memberid, nombre, latitud, longitud, Direccion, cpostal, ciudad) VALUES ($memberid, $nombre, $latitud, $longitud, $Direccion, $cpostal, $ciudad)"; Pero estás usando variables que no existen, trata de ponerlas como :memberid en lugar $memberid (: en lugar de $), también debes de validar que en el arreglo $_POST vienen todas esas variables. Eso no lo hice en el ejemplo por que trato de mantener todo sencillo, si pongo cada validación, el código sería más difícil de leer. Si tienes dudas sobre como manejar bases de datos con PDO en PHP, aquí tengo un tutorial en mi blog que te puede ayudar www.codigonaranja.com/2018/acceso-bases-datos-usando-pdo-php
@@CodigoNaranja Buenas, muchas gracias, si tienes razón lo hice con los 2 puntos y fue cuando me dio ese error. Después probe con los $ y tampoco funcionaba, pero el error es con los : , no entiendo muy bien a que te refieres con que vengan esas variables en $_POST, debo incluirlas en algun lugar más de donde las he incluido? muchas gracias de nuevo!
Buenas, muchas gracias por el tutorial, lo tengo funcionando. Sin embargo tengo un problema, en mi tabla de la base de datos tengo algunas campos de tipo text y medium text, cuando el contenido de estos campos supera unos 10/15 caracteres todo deja de funcionar. Al hacer un GET se recibe la respuesta correcta (200) pero deja de mandar el contenido de la tabla en JSON, no se recibe nada.
HOLA AMIGO MUY BUEN VIDEO TENGO UN PROBLEMA CON EL PUT PONGO LO SIGUIENTE localhost/rest/post.php?id=3 localhost/rest/post.php?id={3} VOY AL BODY EN FORMDATA Ó EN RAW "title": "xxx" NO ME ACTUALIZA EL REGISTRO ME PODRAS APOYAR POR FAVOR --> SOLO DALE UN 1
Excelente forma de explicar, más claro que nunca, Infinitos agradecimientos, una manera muy buena para quienes medio programamos.
Excelente al grano sin tanta vuelta me gusto gracias.
MUCHAS GRACIAS!!!!! , lo has explicado excelentemente, claro y preciso,
No dejes de generar más videos, lo haces muy bien!!
Gracias otra vez!
Explicas bastante bien bro me subscribo
Con que claridad explicas .. genial!
Gracias, me alegra que te haya gustado el canal
Muchas gracias por tu video, te dejo mi Like y suscripción, sigue así. Saludos
Me gusto mucho tu video :) sería bueno que explicaras los demás métodos veo que algunos tienen dudas sobre eso
si estan pasando esta api a produccion en un cpanel. tienen que agregarle debajo de los "include" del archivo post.php esto:
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
pues hay servidores que no permiten la accesibilidad remota
Buenas, muchas gracias por el tutorial quedo todo muy claro, para habilitar CORS? como se haria? muchas gracias
Gran video amigo, me sirvió mucho😁
Que bueno que te haya gustado!
Muy buen vídeo, un ejemplo muy bueno.
Gracias por tu comentario!!
me ayudo un monton muchas gracias
Me alegra que te haya gustado el video, gracias
Muy bueno el video
mil gracias, excelente video, se gano un suscriptor mas
Muchas gracias por el aporte, seria genial que nos ayudes completando la opcion PUT, porque en mi caso no me funciona con POSTMAN
Me pasaba lo mismo, si funciona, pero se deben enviar los datos a actualizar como parámetros: localhost/example/post.php?id=4&content=Prueba para actualizar (osea al probar en el postman, debe enviarse como en Params)
@@davidbuenano8962 A mi me pasa todo lo contrario, en el Metodo GET no me muetra nada.
Muy bueno, gracias!!!
Gracias, que bueno que te haya servido
Hola, gracias por la información.
Tengo una duda en cuestión del método de actualizar, no comprendo como mandar los valores si solo tiene un arreglo $fields.
Te agradecería si me pudieses aclarar esa duda por favor, saludos.
Gracias amigo me sirvió mucho
Me alegra que te haya servido y gracias por el comentario
Un pregunta, Es posible que hallan acceso simultáneos? O de eso se encarga el Apache? Esta bueno el video. Gracias
Hola, si se puede tener accesos simultaneos y si Apache es quien se encarga de eso. Pero Apache no es muy bueno, es mucho mejor usar nginx, cuando tenia mi blog en Apache comenzo a sentirse muy lento, pero con solo cambiar a Nginx mejoro muchisimo.
Super.. mil gracias
Excelente, super bien, funciona Impecable
Muchisimas gracias!!! Excelente video
Excelente video explicativo...podrías hacer los codigos de error en la Api..por fa
esta muy bueno y practico.... gracias
Hola, tengo una duda, estoy aprendiendo php pero me surge la duda de que diferencia existe entre hacer una api para consultar o meter datos en la tabla y/o hacer directo la consulta o un append.
Saludos.
para hacer la consulta necesitás tener tu propia vista que muestre los resultados o por la cual ingresar datos a la DB. Si hacés una API, esas consultas las podés gestionar desde Postman por ejemplo, sin necesidad de tener tu propia vista, ya que estarías separando tu backend del frontend
Muchas gracias, por fin me quedo claro como es que funciona esto, pero necesito una ayuda urgente, por que me funciona con algunas tablas y con otras no, me refiero que en algunas tablas solo funciona con el get id, pero no hace el select *, o hay un límite de registros y columnas que puede mostrar, lo busque en google pero nada menciona eso, muchas gracias de antemano
Cordial saludo. Excelente video. Cuál sería el comando para solicitarle a la API un GET/POST desde un navegador, o una app en python/C# y no desde postman? Gracias por compartir sus conocimientos.
Si uso xammp sería en la carpeta htdocs verdad?
si
excelente video, muy bien explicado, sigue adelante.
Gracias!! Dios lo bendiga
No olvidar que el campo status solo puede tener dos valores: draft y published
Amigo pero el put recibe get url o Params no url
si tengo el servidor localhost:8080 ??? en cuales lineas de codigo cambia
Buenos dias, no veo la autenticacion en este API, o si tienen un video donde lo explique ya que siempre una api pide autenticacion o token etc
Muchas gracias por tu ayuda
Gracias por comentar, me alegro que te gustara mi video
Parece sencillo pero cuando tengas que sacar información de tablas relacionales ahí se complica al usar los INNER JOIN en el Api rest y hacerlo de forma dinámica ya son palabras mayores , porque sólo muestran lo fácil.
Si, esto es para hacer el servicio, ya lo que tu mencionas es programación normal de php que haces regularmente al crear aplicaciones.
Hola,
esa API como se le hace para un carrito de compras con sesiones?
Disculpen mi ignorancia, esto es un RestFull? ( es que vi otros con frameworks pero no se que diferencia hay ) aparte, como sería esto de la mano con Ajax?
la riegas no dices que ya esta actualiuzado la pagina de pruebas
Que tal amigos, a mi me estaba pasando que mis registros tenían "ñ" o tildes, y por lo tanto no me traia registros en mi consulta, esto lo solucione poniendo al inicio
$sql = $dbConn->prepare("SET NAMES 'utf8'");
$sql->execute();
por que mi base tenia otro cotejamiento.
Gracias por tu aporte!
amigo gracias, y gracia spor le codigo necesitaba algo simple dime si esto puedo subirlo a hostgator
Muchas Gracias AMigo podrías ayudarnos en Testear el PUT ? No me sale :(
Estoy en las mismas bro, lo lograste? jaja
pasó 1 año pero nunca está demás preguntar omegalul
en mi caso mi campo id se llama ids y es de tipo bigint, le quite la comilla simple al igualar en el where
$postId = $input['ids'];
$fields = getParams($input);
echo $fields;
$sql = "
UPDATE tabla
SET $fields
WHERE ids=$postId
con estos cambios funciono....
Hola tengo una duda cual es la diferencia en servicio web Json y RestFul, porque en tu video vi el código fuente y me di cuenta que tu servicio web es Json.
Hola, los servicios web tradicional se basan en xml esto hace que usen mas espacio y sean mas complicados. Los servicios restful usan json. Cuando escuches rest, restful, servicio web json, son lo mismo. Cuando escuches servicio web usualmente se refieren a un servicio que usa xml y un wsdl. Aqui hay un articulo en donde esta todo bien explicado. codigonaranja.com/restful-web-service
Gracias por comentar
Muchas gracias :D
me sale este error cuando lo ejecuto usando postman ?
Parse error: syntax error, unexpected '[' in C:\inetpub\wwwroot
est\src\config.php on line 5
lo he revisado y creo que es por los corchetes? que hago
Hola, que version de PHP estas usando? esa sintaxis es valida a partir de PHP 5.4
Hola! implemente tu codigo y funciona siempre y cuando instale postman en la PC, cuando lo ejecuto en el navegador me tira el siguiente error: "Cloud Agent Error: Can not send requests to reserved address. Make sure address is publicly accessible or select a different agent" ¿sabe como lo puedo solucionar? me interesa que mi api rest este en servidor local y sea llamado desde otro dispositivo de la misma red LAN solo que este sea un app web
Hola, es por que si tu servicio o api esta local solo puede ser usado en tu computadora, para que sea accesible desde cualquier parte debe estar publicado en un servidor con una ip publica
Porque no puedo entrar a esa página? Me dice que localhost ha rechazado mi conexión
disculpa podrias subirlo de nuevo si no fuera inconveniente
Hola muchas gracias porel tutorial, muy sencillo y bien explicado. Pero tengo un problema con el metodo POST me devuelve este error en los logs:
thrown in /home/rtfgd/public_html/api/post.php on line 44
[26-Jul-2020 22:44:03 Europe/Madrid] PHP Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound in /home/rtfgd/public_html/api/post.php:44
Esto es lo que tengo en post
Hola, revise tu código y el problema está en el SQL del método post, tú tienes
$sql = "INSERT INTO restaurants
(memberid, nombre, latitud, longitud, Direccion, cpostal, ciudad)
VALUES
($memberid, $nombre, $latitud, $longitud, $Direccion, $cpostal, $ciudad)";
Pero estás usando variables que no existen, trata de ponerlas como :memberid en lugar $memberid (: en lugar de $), también debes de validar que en el arreglo $_POST vienen todas esas variables. Eso no lo hice en el ejemplo por que trato de mantener todo sencillo, si pongo cada validación, el código sería más difícil de leer.
Si tienes dudas sobre como manejar bases de datos con PDO en PHP, aquí tengo un tutorial en mi blog que te puede ayudar
www.codigonaranja.com/2018/acceso-bases-datos-usando-pdo-php
@@CodigoNaranja Buenas, muchas gracias, si tienes razón lo hice con los 2 puntos y fue cuando me dio ese error. Después probe con los $ y tampoco funcionaba, pero el error es con los : , no entiendo muy bien a que te refieres con que vengan esas variables en $_POST, debo incluirlas en algun lugar más de donde las he incluido?
muchas gracias de nuevo!
Pudiste resolverlo? me sale lo mismo.
Buenas, muchas gracias por el tutorial, lo tengo funcionando.
Sin embargo tengo un problema, en mi tabla de la base de datos tengo algunas campos de tipo text y medium text, cuando el contenido de estos campos supera unos 10/15 caracteres todo deja de funcionar. Al hacer un GET se recibe la respuesta correcta (200) pero deja de mandar el contenido de la tabla en JSON, no se recibe nada.
mismo error, todavia.. alguna solucion?
Excelente video. Pero no se puede descargar codigo
no me lista nada, tengo una tabla con mas de 1000 filas, pero no lo lista
HOLA AMIGO MUY BUEN VIDEO TENGO UN PROBLEMA CON EL PUT PONGO LO SIGUIENTE
localhost/rest/post.php?id=3
localhost/rest/post.php?id={3}
VOY AL BODY EN FORMDATA Ó EN RAW
"title": "xxx"
NO ME ACTUALIZA EL REGISTRO ME PODRAS APOYAR
POR FAVOR --> SOLO DALE UN 1
Está super bien, solo que me manda HTML en vez de Json :(
Excelente, muchas gracias!
Si quiero enviarle un RAW Json y no un form data, cómo podría hacerlo?, saludos.