Dyma - REST API instant tester (zero config)

1 - Informations

Ce service vous est fourni par Dyma.

Il permet de tester votre frontend sans aucun backend ! Vous pouvez sauvegarder n'importe quelles données pendant 10 heures pour tous vos tests.

Dans votre frontend il suffit d'indiquer comme route :

https://restapi.fr/api/ + collection

Où collection est le nom de votre ressource, par exemple users, messages etc.

Attention à bien utiliser du JSON pour POST/PUT/PATCH !

Routes avec optionnellement un id mongo

POST   api/posts
GET    api/posts/id?
PUT    api/posts/id?
PATCH  api/posts/id?
DELETE api/posts/id?

Filtres

GET api/posts?title=test&author=paul
GET api/posts?id=mongodid
DELETE api/posts?author=paul

Options

Vous pouvez utiliser skip et limit pour paginer vos données.

GET api/posts?limit=20
GET api/posts?skip=20&limit=20 // page 2

Sort

Vous pouvez utiliser sort et spécifier l'ordre avec asc ou 1 // desc ou -1 (ascending ou descending).

GET api/posts?sort=createdAt:-1
GET api/posts?sort=createdAt:asc

Opérateurs de comparaison

Vous pouvez utiliser les opérateurs de comparaison MongoDB suivant : $gte, $gt, $lte, $lt.

GET api/authors?likes=$gte:10
GET api/authors?likes=$lt:20

Nous supportons les dates mais au format ISO (ISO 8601 Extended Format)

GET api/authors?createdAt=$gte:2020-01-03T17:17:01.097Z

Les timestamps seront interprétés comme des nombres et les DateStrings ne fonctionneront pas.

Vous pouvez utiliser plusieurs opérateurs de comparaison avec la syntaxe suivante :

GET api/authors?likes={"$gte":10, "$lte":42}

2 - Générateur

Vous pouvez utilisez une route pour générer des données pertinentes et les rendre disponibles très facilement.

POST https://restapi.fr/generator

Le body doit être en JSON.

Le nombre maxmimal de documents générés et insérés est de 50.

Paramètres obligatoires

Vous devez préciser le nom de votre collection avec resourceName.

Vous devez préciser le nombre d'éléments avec times.

{
    "times": 2,
    "resourceName": "articles"
}

Noms et emails aléatoires

Il est très simple de générer des noms complets, prénoms, noms et emails.

Utilisez respectivement name, firstName, lastName ou email.

{
    "times": 2,
    "resourceName": "articles",
    "nomComplet": "name",
    "prenom": "firstName",
    "nom": "lastName",
    "email": "email",
}

Nombres aléatoires

Pour générer des nombres entiers aléatoirement, il faut utiliser un objet avec type: number et passer un interval avec range: [min, max].

{
    "times": 2,
    "resourceName": "articles",
    "age": {
      "type": "number",
      "range": [18, 99]
    },
}

Dates aléatoires

Pour générer des dates aléatoirement, il faut utiliser un objet avec type: date et passer un interval avec range: [min, max]. Où min est la date limite inférieure et max la date limite supérieure. Les limites doivent être des dates JavaScript valides par exemple au format ISOString.

{
    "times": 2,
    "resourceName": "articles",
    "date": {
      "range": ["2019-01-04T15:55:21.229Z", "2020-01-04T15:55:21.229Z"],
      "type": "date"
    },
}

Valeurs aléatoires depuis une collection

Pour générer des valeurs aléatoires depuis une collection de valeurs, il faut utiliser un objet avec type: collection et passer un tableau de valeurs avec values: [val1, ...] et préciser si les valeurs doivent être uniques ou non avec unique: true.

Si unique vaut true, chaque valeur dans le tableau passé à values sera unique en sortie. Il faut alors que values contienne suffisamment d'éléments.

Si unique vaut false il pourra y avoir plusieurs fois la même valeur en sortie.

{
    "times": 4,
    "resourceName": "articles",
    "likes": {
      "type": "collection",
      "values": [22, 56, 12, 46],
      "unique": true
    },
}

Paragraphes aléatoires

Pour générer des paragraphes lorem aléatoirement, il faut utiliser un objet avec type: paragraph et de passer un interval avec range: [min, max]. Où min est le nombre minimal de paragraphes et max le nombre maximal.

{
    "times": 2,
    "resourceName": "articles",
    "content": {
      "type": "paragraph",
      "range": [3, 6]
    },
}

Phrase aléatoire

Pour générer une phrase lorem aléatoirement, il faut utiliser un objet avec type: sentence et de passer un interval avec range: [min, max]. Où min est le nombre minimal de mots dans la phrase et max le nombre maximal.

{
    "times": 2,
    "resourceName": "articles",
    "title": {
      "type": "sentence",
      "range": [3, 12]
    },
}

Images aléatoires

Pour générer des liens d'images aléatoires. Il faut utiliser un objet avec type: image et passer également une hauteur avec height, une largeur avec width et un thème avec theme [le thème doit être en anglais, ex cats].

{
    "times": 2,
    "resourceName": "articles",
    "image": {
      "type": "image",
      "theme": "fruit",
      "height": 1000,
      "width": 500
    },
}

Photos de profil aléatoires

Pour générer des photos de profils aléatoires. Il faut utiliser un objet avec type: profilePicture et passer également un genre avec gender.

Les valeurs possibles de gender sont f, female, male, m, mix.

{
    "times": 2,
    "resourceName": "articles",
    "profile": {
      "type": "profilePicture",
      "gender": "m",
    },
}

Exemple pour les articles de blog du projet :

{
    "times": 20,
    "resourceName": "article",
    "author": "name",
    "img": {
        "type": "profilePicture",
        "gender": "m"
    },
    "category": {
        "type": "collection",
        "values": ["Histoire", "Technologie", "Nature", "Espace"],
          "unique": false
    },
    "title": {
        "type": "sentence",
        "range": [5, 12]
    },
    "content": {
        "type": "paragraph",
        "range": [3, 6]
    }
}

Sauvegarde temporaire de fichiers

Vous pouvez stocker des fichiers pendant 24h pour vos tests en utilisant des formulaires HTML et des objets FormData.

POST https://restapi.fr/upload avec multipart/form-data.

Les limites sont : 10 fichiers de 4Mb maximum par envoi.

Vous recevrez en retour un tableau contenant les liens publiques des fichiers que vous pourrez utiliser.

Delay

Si vous voulez simuler une requête qui prend du temps (tests de vos timeouts et loaders) :

Ajoutez simplement une query avec un delay en secondes.

GET https://restapi.fr/api/blog/5e16e37846e3e328c19cb656?delay=3

3 - Demandes de fonctionnalités

Si vous avez besoin de plus de fonctionnalités, demandez le nous sur le chat.