loopbackio / loopbackio/loopback-next

Define a required parameter using a sugar API

Ouverte
#1,940 8 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

developer-experience feature good first issue Hacktoberfest REST
Langage dominant
TypeScript
Étoiles
5.1k
Forks
1.1k
Merge moyen
2 j 21 h
PR mergées (30 j)
27

Description

At the moment, it is not possible to use `@param` shortcuts like `@param.query.string` to define a required parameter.

One has to use `@param` directly (but don't have to specify the type since LB4 can infer the type from TypeScript metadata). For example:

```ts
@param({name: 'format', in: 'query', required: true}) format?: string
```

Ideally, I would like LB4 to provide the following syntax for annotating parameters as required:

```ts
@param.query.string('format', {required: true}) format?: string
```

## Acceptance criteria

- [ ] Modify all `@param.SOURCE.TYPE()` shortcuts (and possibly other similar shortucts) to accept a new optional argument of type `Partial` and use the provided properties to enhance (or amend) the spec generated by the decorator.
- [ ] Modify `@param.array()` in a similar way, the new optional argument will be the fourth arg.
- [ ] Modify `@param.query.object()` similarly, the new optional argument will be the third arg.
- [ ] Verify that the API documentation is able to pick up the changes

---

## 🎆 Hacktoberfest 2020

Greetings :wave: to all Hacktoberfest 2020 participants!

Here are few tips 👀 to make your start easier, see also #6456:

- Before you start working on this issue, please leave a comment to let others know.
- If you are new to GitHub pull requests, then you can learn about the process in [Submitting a pull request to LoopBack 4](https://loopback.io/doc/en/lb4/submitting_a_pr.html).
- If this is your first contribution to LoopBack, then please take a look at our [Developer guide](https://loopback.io/doc/en/lb4/code-contrib-lb4.html)
- Feel free to ask for help in `#loopback-contributors` channel, you can join our Slack workspace [here](https://join.slack.com/t/loopbackio/shared_invite/zt-8lbow73r-SKAKz61Vdao~_rGf91pcsw).

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par localiser les implémentations TypeScript des raccourcis @param.SOURCE.TYPE(), @param.array() et @param.query.object(), puis examinez comment leurs spécifications ParameterObject générées sont exposées dans la documentation API. Mettez à jour les raccourcis afin qu’ils acceptent les propriétés facultatives indiquées et vérifiez que la documentation les reflète, y compris les paramètres obligatoires.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
openapi, typescript
Domaine
api, documentation
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.