No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de GitHub Copilot

Curso de GitHub Copilot

Ana Belisa Martínez

Ana Belisa Martínez

Implementar un REST API en PHP con GitHub Copilot

3/12
Recursos

Automatizar la codificación con GitHub Copilot puede parecer todo un desafío, pero este apasionante mundo está a tan solo unos clicks de transformar tu proceso de codificación.

Este efectivo asistente AI, desarrollado por GitHub, no solo genera ensayos de código basados en nuestros prompts, sino que también mejora nuestra eficiencia al escribir el código mucho más rápido y funcional. ¡Comenzamos!

¿Cómo iniciar un prompt en GitHub Copilot?

Al trabajar con GitHub Copilot, el primer paso para iniciar el proceso de codificación es ingresar un prompt en nuestro editor de texto. Intuitivamente, le pediremos en lenguaje natural que nos ayude a crear la función deseada. En este ejemplo, solicitamos una función que se connecta como cliente a una API en línea y retorna el resultado de la consulta en un array asociativo:

"escribe una función que se conecte a una API online y devuelva el resultado de la consulta en un array asociativo"

Aquí, GitHub Copilot nos asistirá con una sugerencia de texto para lograr nuestro objetivo.

¿Cómo aplicar y probar la sugerencia de GitHub Copilot?

Una vez que recibimos la sugerencia de nuestro asistente, simplemente damos Enter y el asistente nos proporcionará la función resultante. Para probarla, hacemos un llamado a esa función, con el nombre que nos sugiere, y pasamos una URL por parámetro. Al recibir el resultado de esta función, lo guardamos con el nombre “result”. Nuestro siguiente paso será visualizar este resultado.

¿Cómo visualizar la información en el caso particular de una consulta de API?

Aquí haremos un cambio en la API porque ahora queremos utilizar la información relacionada con los posts. Luego, le pediremos una segunda función a GitHub Copilot:

"crea una función para mostrar el array asociativo de get API en una tabla HTML"

Con la sugerencia de la función ShowTable, podremos visualizar la información en una tabla HTML. Al volver a probar, veremos que los datos de la API se muestran de manera organizada en una tabla HTML. Esta función también se ha creado con la ayuda de GitHub Copilot, y entrega exactamente lo que esperábamos: una tabla de HTML organizando la información devuelta por la API.

¿Cómo hacer una mejora en el código con GitHub Copilot?

Finalmente, se podrán hacer mejoras en el código a través de los prompts. En nuestro último ejemplo, creamos una nueva función para reemplazar los valores numéricos del resultado de la API por un texto indicativo. Usamos un prompt similar al anterior:

"crea una función que procese el resultado de get API y si detecta que hay valores numéricos los reemplace por un texto que sea 'es numérico'"

GitHub Copilot nos proporcionó la función ReplaceNone, que procesa el array asociativo y reemplaza los valores numéricos por el texto indicado. Después de implementar y probar este código, vemos que efectivamente se realiza el reemplazo deseado.

GitHub Copilot se ha demostrado como una herramienta eficiente y de gran ayuda para facilitar nuestro proceso de codificación. Sin embargo, siempre es importante validar con tu conocimiento y experiencia cada generación de nuevo código. ¡Ahora te animamos a probar esta novedosa herramienta con otros lenguajes de programación!

Aportes 14

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

No se porque pero no puedo ver la primera clase, me manda a home

Al parecer ocurrió un problema con el lanzamiento del curso, puesto que no se puede acceder a la primera clase que explica qué es GitHub Copilot y cómo integrarlo en VSC.
Estoy seguro que el Team Platzi lo solucionará pronto. De momento les comparto esta página donde encontrarán información oficial sobre GitHub Copilot, y al hacer clic en el botón “Install” les abrirá VSC para añadirlo como extensión.
Adicionalmente les comparto un video sobre las ventajas de usar GitHub Copilot.
https://youtu.be/jsHAyBmFZlo?si=6r4__ajSYLwSD6lu

Para la gente que no puede usar Github copilot porque no lo pueden pagar o porque no puedes acceder a la prueba gratis porque no tienen tarjeta, pueden utilizar alternativas gratuitas como Amazon codewhisperer, que es gratuita y funciona parecido. Saludos
si no puedo pagar copilot como hago jajaj
Hecho con python y AWS Code Whisperer `#Escribe una funcion que se conecte a una API online y devuelva el resultado de la consulta en un array asociativoimport requests` `def consulta_api(url): response = requests.get(url) if response.status_code == 200: return response.json() else: return None` `# Escribe una url donde pueda probar tu funcionurl = 'https://jsonplaceholder.typicode.com/users'result = consulta_api(url)# print(result)` `# Crea una funcion que procese el resultado de getApi() y si detecta que hay valores numericos# los reemplace por un texto que diga "numero"def procesar_resultado(result): for dato in result: for key, value in dato.items(): if isinstance(value, int): dato[key] = 'numero' return resultresult = procesar_resultado(result)` `# Crea una funcion que reciba un array asociativo y muestre dicho array en una tabla HTML. La tabla# tendra una fila con los nombres de las columnas y una fila por cada elemento del array.import html` `def crear_tabla_html(datos): tabla = '' tabla += '' for key in datos[0]: tabla += f'' tabla += '' for dato in datos: tabla += '' for valor in dato.values(): tabla += f'' tabla += '' tabla += '
{key}
{html.escape(str(valor))}
' return tabla` `tabla_html = crear_tabla_html(result)` `# Muestra la tabla siendo servida desde el puerto 3000from flask import Flask, render_template` `app = Flask(__name__)@app.route('/')def index(): return tabla_html` `if __name__ == '__main__': app.run(debug=True, port=3000)`
Hice el mismo procedimiento de la clase pero con JavaScript: ```js /* Escribe una función que se conecte a una API online y devuelva los datos en un array asociativo. */ async function getApiData() { const response = await fetch("https://jsonplaceholder.typicode.com/posts"); const data = await response.json(); return data; } getApiData() .then((data) => { console.log(data); // Logs the fetched data to the console }) .catch((error) => { console.error("Failed to fetch data:", error); }); // Crea una función para mostrar el array asociativo de getApiData() en una tabla HTML. La tabla tendrá una fila con los nombres de las columnas y una fila por cada elemento del array. function createTable(data) { const table = document.createElement("table"); table.setAttribute("border", "1"); const thead = document.createElement("thead"); const tbody = document.createElement("tbody"); const columns = Object.keys(data[0]); const columnRow = document.createElement("tr"); columns.forEach((column) => { const th = document.createElement("th"); th.textContent = column; columnRow.appendChild(th); }); thead.appendChild(columnRow); table.appendChild(thead); data.forEach((item) => { const row = document.createElement("tr"); columns.forEach((column) => { const cell = document.createElement("td"); cell.textContent = item[column]; row.appendChild(cell); }); tbody.appendChild(row); }); table.appendChild(tbody); document.body.appendChild(table); } // Crea una función que procese el resultado de getApiData() y si detecta en cualquiera de los niveles del array que hay valores númericos los reemplace por un texto "ES NÚMERICO" function replaceNumbersWithText(data) { return data.map((item) => { return Object.fromEntries( Object.entries(item).map(([key, value]) => { if (typeof value === "object") { return [key, replaceNumbersWithText(value)]; } else { return [key, typeof value === "number" ? "ES NÚMERICO" : value]; } }) ); }); } getApiData() .then((data) => { const processedData = replaceNumbersWithText(data); createTable(processedData); }) .catch((error) => { console.error("Failed to fetch data:", error); }); ```
hay una version de copilot para los que nos gusta el ecosistema de jetbrains, está en la tienda de plugins.
Les dejo el link para configurar GitHub Copilot, 1. Hay que subscribirse a Github Copilot desde la pagina de github 2. Configurar Copilot desde VS code instalando la extension de "github copilot" y si lo desean "github copilot chat" <https://docs.github.com/es/copilot/quickstart>
Asi pinta mas organizado el json `print("
".print_r($result,true)."
");`

Mi resumen sobre GitHub Copilot para Crear Funciones

  1. Uso Básico:
  • Generar Código: En tu editor, escribe un comentario con el prompt en lenguaje natural, como: “Escribe una función que se conecte a una API online y devuelva el resultado en un array asociativo.” GitHub Copilot sugiere el código y al presionar Tab, inserta la función en el archivo PHP.
  1. Implementación:
  • Prueba del Código: La función sugerida getAPI toma una URL, lee su contenido, y retorna el resultado como un array asociativo después de decodificar el JSON.
  • Visualización: Guarda el resultado en una variable y utiliza print_r para mostrarlo.
  1. Mejora de Visualización:
  • Mostrar en Tabla HTML: Solicita a Copilot que cree una función para mostrar el array asociativo en una tabla HTML. Inserta el código generado, reemplaza el print_r con la nueva función, y recarga la página para ver la tabla con la información organizada.
  1. Modificación de Datos:
  • Procesar Resultados: Pide a Copilot que reemplace valores numéricos en el array por el texto “es numérico”. La nueva función detecta números y los reemplaza en la tabla. Implementa esta función y verifica el resultado en el navegador.
  1. Conclusión:
  • Validación del Código: Utiliza GitHub Copilot para generar y probar rápidamente funciones en tu código. Siempre revisa el código generado para asegurar que cumple con los requisitos de tu proyecto.

GitHub Copilot facilita la creación de funciones y la manipulación de datos, acelerando el proceso de desarrollo y mejorando la eficiencia en la programación.

![]()Creé un ejemplo con Go para llamar a la API jsonplaceholder.typicode.com. La versión hasta esta fecha de GitHub Copilot tiene una ventana que se activa con Ctrl + *Shift + I.* Me gusta mucho poder aprender más con estos ejemplos. Gracias.

Consulto desde la ignorancia misma, ya que estoy aprendiendo a programar. Copié al pie de la letra el texto de la profesora, pero en mi ambiente, Copilot me dio la función: "processArray($Array) ¿Tiene alguna incidencia respecto a la función que figura en el ejercicio: “replaceNum”

//Crea una función para mostrar el array asociativo de getApiResponse() en una tabla HTML. La tabla tendrá un fila con los nombres de las columnas y una fila por cada elemnto array
function showTable($array) {
// Mostrar la tabla HTML
echo “<table border=‘1’>”;

// Mostrar la fila con los nombres de las columnas
echo "<tr>";
foreach ($array[0] as $key => $value) {
    echo "<th>$key</th>";
}
echo "</tr>";

// Mostrar una fila por cada elemento del array
foreach ($array as $row) {
    echo "<tr>";
    foreach ($row as $key => $value) {
        echo "<td>$value</td>";
    }
    echo "</tr>";
}

// Cerrar la tabla HTML
echo "</table>";

}
showTable($result);
//Crea una función que procese el resultado de getApiResponse() y si detecta que hay valores numéricos los reemplace por un texto "ES NUMERICO"
function processArray($array) {
// Recorrer el array
foreach ($array as $key => $value) {
// Si el valor es numérico
if (is_numeric($value)) {
// Reemplazar el valor por el texto “ES NUMERICO”
$array[$key] = “ES NUMERICO”;
}
}

// Retornar el array procesado
return $array;

}
showTable(processArray($result));

si algo esta mal

Puedes usar para imprimir variables el **var\_dump**