Para aprenderse los Códigos de estado HTTP: HTTP STATUS DOGS
Entender Laravel
¡Actualizamos este curso!
¿Qué es Laravel?
Herramientas necesarias para trabajar con PHP y Laravel
Entendiendo el ciclo de vida de las solicitudes web
Qué es un CRUD y cómo implementarlo
Lógica de controladores y vistas con datos de prueba
Creando un formulario
Comprender los Fundamentos de Laravel
Sistema de rutas y controladores
Uso de Middlewares
Validación de datos (rutas, vistas, formularios y controladores)
Blade: sistema de plantillas avanzado
Trabajando con el componente Laravel/UI
Aprender sobre Eloquent ORM
Eloquent: trabajando con este ORM
Relaciones de tablas
Colecciones y serialización de datos
Formato de valores en tablas y presentación de datos
Crear PlatziPress
Proyecto Blog: presentación y configuración inicial
Creación de tablas, entidades y datos de prueba
Plantillas de trabajo y entendiendo el login
Diseño visual con Bootstrap
Vista index y botones de acción
Implementación del formulario de creación
Implementación del guardado
Creando la función de editar un post
Actualizando nuestros posts
Integrando contenido audiovisual
Construir Proyecto Final: API con TDD (Intermedio)
Introducción al testing
Metodología TDD y testing HTTP
Proyecto API con TDD: presentación y configuración inicial
Store con TDD
Refactorización y validación en Store
Show con TDD
Update y validación con TDD
Delete con TDD
Index con TDD
Protección de una API con Login
Cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 23
Preguntas 7
Para aprenderse los Códigos de estado HTTP: HTTP STATUS DOGS
Códigos Status 2xx:
no entiendo absolutamente nada en este capitulo, vengo perfecto con el curso pero aqui me estallo el cerebro no entiendo NADA todo el capitulo lo senti como “haga asi, asa asi y asi” pero en cada paso la pregunta es PORQUE? COMO? DONDE? de donde salio?
Codigos Status 4xx.
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 Payload Too Large
414 URI Too Long
415 Unsupported Media Type
416 Requested Range Not Satisfiable
417 Expectation Failed
418 I’m a teapot
421 Misdirected Request
422 Unprocessable Entity (WebDAV)
423 Locked (WebDAV)
424 Failed Dependency (WebDAV)
426 Upgrade Required
428 Precondition Required
429 Too Many Requests
431 Request Header Fields Too Large
451 Unavailable For Legal Reasons
public function test_validate_title() {
$response = $this->json('POST', '/api/posts', [
'title' => ''
]);
$response->assertStatus(422)
->assertJsonValidationErrors('title'); // Solicitud OK, pero no se pudo concretar
}
Explicación de HTTP Status con perros
Explicación de HTTP Status con gatos en flicker
En el ejemplo de refactorización, lo que no pude comprender es cómo el constructor del controlador PostController obtiene como argumento la entidad Post? ¿Quién le envía ese argumento?
class PostController extends Controller {
protected $post;
public function __construct(Post $post) {
$this->post = $post;
}
Por si ha alguien le sirve, se me paso poner el authorize() a true y no entendia los errores que salian.
Aporte de la clase
https://www.evernote.com/l/Ap4Moc1-tr5Id4qaZqvpNqguqJv3eRMRl6E/ 😄
El listado completo de los Asserts:
La refactorizacion de ese _construct(Post) , no comprendo que sentido tiene o como puede ser mejor.
Todo era perfecto hasta que llegue a Tests, es algo complejo de entender pero muy importante.
`There was 1 error:
Me manda ese error, me pueden ayudar, por favor!
https://www.restapitutorial.com/httpstatuscodes.html esta página me ha ayudado mucho en e uso de apis
Tests: 1 failed, 1 passed
Illuminate\Validation\ValidationException
The given data was invalid.
me sale ese error
refactorizando el codigo sin alterar el resultado
Resumen primer refactor: para mejor legibilidad
.
Usar propiedad en vez de facade
.
Dentro del controller:
// 1. creo propiedad
protected $post;
// 2. recibo la entidad
public function __construct(Post $post)
{
// 3. asigno la entidad a la propiedad
$this->post = $post;
}
// En el metodo
public function store(Request $request)
{
// $post = Post::create($request->all()); // uso Facade::
// 4. uso la propiedad en vez del facade, para mayor legibilidad
$post = $this->post->create($request->all());
return response()->json($post, 201);
}
class PostTest extends TestCase
{
use RefreshDatabase;
public function test_store()
{
//$this->withoutExceptionHandling(); //PARA TESTING DETALLADO
$response = $this->json('POST','/api/posts',[
'title' => 'El Post de Prueba'
]);
$response->assertJsonStructure(['id','title','created_at','updated_at'])
->assertJson(['title' => 'El Post de Prueba'])
->assertStatus(201); //OK Y CREADO UN RECURSO : CODIGO 201
$this->assertDatabaseHas('posts',['title' => 'El Post de Prueba']);
}
public function test_validate_title()
{
$response = $this->json('POST','/api/posts',[
'title' => ''
]);
$response->assertStatus(422) //estatus 422: Imposible de completar
->assertJsonValidationErrors('title');
}
}```
A Italo mis respetos, es un Excelente docente, he aprendido mucho de el en estos cursos, pero hoy asi me siento con testing,… es un tema que depronto por falta de experiencia me ha costado …
Me da este error
The given data was invalid.
Me da el error
Failed asserting that an array has the key ‘id’.
Listo el método Store, ahora vamos con el método Show.
Saludos, por casualidad alguien más se le muestra la consola así cuando se ejecuta php artisan test? porque no se entiendo el test si esta correcto pero como se podría hacer para que se visualice bien?
La validación del código de error funciona precisamente porque al crear el request de Post, cuando una validación falla, Laravel retorna el error junto con el código de error 422
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?