Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

add an HTTP API

Abierto
#60 12 comentarios 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
42/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
python
Área
api, backend

Línea de trabajo

Comienza siguiendo el endpoint /explain existente y cómo analiza los comandos y produce coincidencias de ayuda. Define la respuesta de GET /api/explain?cmd=... usando los campos propuestos help, cmd y matches, incluido el texto de ayuda duplicado y los cambios en los comandos, como el manejo de Unicode. Se considera terminado cuando un endpoint HTTP devuelve el JSON documentado para el ejemplo echo -n y las pruebas de integración adecuadas cubren su comportamiento.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

It might be time to add an HTTP API for tools/websites that want to integrate with explainshell (issue #4 is one).

My current thought is to add a GET endpoint at /api/explain with a cmd parameter, similar to /explain. The response could be a JSON that looks something like this:

{
  'help' : ['help text 0', 'help text 1', ..],
  'cmd' : <parsed command>
  'matches' : [{'startindex' : x,
                    'endindex' : y,
                    'helpindex' : <index into help array, or -1 if unknown>], [..]]
}

The rationale for not inlining the help text into matches is that there can be duplicates. The reason for including cmd in the response is that it's possible for explainshell to change it, e.g. due to unicode which is not supported yet.

Example:

GET /api/explain?cmd=echo -n

{
  'help' : ['display a line of text',
             '-n     do not output the trailing newline'],
  'cmd' : 'echo -n'
  'matches' : [{'startindex' : 0, 'endindex' : 4, 'helpindex' : 0},
                   {'startindex' : 5, 'endindex' : 7, 'helpindex' : 1}]
}
Lenguaje dominante
Python
Estrellas
14.2k
Forks
851
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de idank/explainshell

Todos los issues de idank/explainshell

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.