Documentation développeur

Documentation de l’API JolyMusic

Intégrez votre application au catalogue musical et aux comptes JolyMusic.

URL de base : https://jolymusic.com. Tous les chemins commencent par /api.

Accès et cycle de vie des jetons

Les jetons API personnels sont disponibles tant que le compte dispose d’un abonnement payant actif. Créez-les et révoquez-les dans Profil → Jetons API.

  • Le jeton complet n’est affiché qu’une seule fois ; conservez-le dans un gestionnaire de mots de passe ou un coffre de secrets.
  • JolyMusic ne conserve qu’une empreinte irréversible du jeton.
  • Révoquez immédiatement tout jeton perdu ou devenu inutile.
  • Les jetons révoqués, expirés ou associés à une formule Gratuite sont refusés.

Authentification

Envoyez le jeton personnel dans chaque requête authentifiée avec cet en-tête exact :

X-Joly-Api-Token: joly_your_token_here

Ne placez jamais un jeton dans une URL, un bundle navigateur, un dépôt public ou une application côté client. L’origine des clients web doit être autorisée par la configuration CORS du serveur.

Démarrage rapide

Vérifiez l’authentification avec le point d’accès de l’utilisateur courant :

curl --request GET \
  --header "X-Joly-Api-Token: joly_your_token_here" \
  https://jolymusic.com/api/mobile/me

Pour un serveur HTTPS local avec un certificat autosigné, ajoutez -k à curl. N’utilisez jamais -k en production.

Conventions des requêtes et réponses

  • Les réponses sont au format JSON. Envoyez Content-Type application/json pour un corps JSON.
  • Les réponses de catalogue et d’initialisation contiennent data ; les réponses agrégées contiennent aussi meta.includes et meta.count.
  • Plusieurs points d’accès de lecture renvoient un ETag. Envoyez If-None-Match lors des requêtes GET suivantes et réutilisez le corps en cache après une réponse 304 Not Modified.
  • Les routes d’élément utilisent des identifiants entiers positifs.
  • Les routes publiques du catalogue ne nécessitent aucun jeton. Utilisez un jeton personnel pour les routes qui identifient ou modifient le compte.

Sélectionner uniquement les groupes de catalogue nécessaires

curl "https://jolymusic.com/api/mobile/entities?include=keys,intervals,instruments"

Référence des points d’accès

Il s’agit de l’interface d’intégration stable. La référence OpenAPI interactive documente l’ensemble plus large des ressources API Platform.

Compte et catalogue agrégé

MéthodeCheminAuthentificationDescription
GET/api/mobile/meRequiseCompte, rôles, abonnement et capacités de l’utilisateur courant.
GET/api/mobile/music-bootstrapFacultativeTonalités, gammes et instruments. Prend en charge keyId, bassIntervalId et relationships.
GET/api/mobile/entitiesFacultativeCatalogue agrégé. Le paramètre facultatif include, séparé par des virgules, limite les groupes renvoyés.
GET/api/mobile/circular-tracksFacultativeCatalogue visible des pistes circulaires.

Collections de ressources mobiles

Pour obtenir une ressource, ajoutez /{id} au chemin de la collection.

CollectionÉlémentDescription
GET /api/mobile/keysGET /api/mobile/keys/{id}Tonalités musicales.
GET /api/mobile/intervalsGET /api/mobile/intervals/{id}Intervalles musicaux.
GET /api/mobile/key-scalesGET /api/mobile/key-scales/{id}Relations entre tonalités et gammes.
GET /api/mobile/harmoniesGET /api/mobile/harmonies/{id}Harmonies visibles.
GET /api/mobile/circular-rhythmsGET /api/mobile/circular-rhythms/{id}Rythmes circulaires.
GET /api/mobile/sound-enginesGET /api/mobile/sound-engines/{id}Métadonnées des moteurs sonores.
GET /api/mobile/sound-presetsGET /api/mobile/sound-presets/{id}Préréglages sonores visibles.
GET /api/mobile/articlesGET /api/mobile/articles/{id}Articles publiés.
GET /api/mobile/media-assetsGET /api/mobile/media-assets/{id}Métadonnées des médias visibles.
GET /api/mobile/instrumentsGET /api/mobile/instruments/{id}Catalogue des instruments.
GET /api/mobile/instrument-rowsGET /api/mobile/instrument-rows/{id}Catalogue des rangées d’instrument.
GET /api/mobile/music-systemsGET /api/mobile/music-systems/{id}Catalogue des systèmes musicaux.
GET /api/mobile/music-systems/{id}/stateÉtat résolu d’un système musical.

Utilitaires publics

MéthodeCheminDescription
GET/api/keysCollection des tonalités.
GET/api/instrumentsCollection des instruments.
GET/api/instruments_selectOptions de sélection des instruments.
GET/api/instrument_rows_selectOptions de sélection des rangées d’instrument.
GET/api/drum-folders.json /api/drum-folder-files.jsonDossiers et fichiers du navigateur de batteries.

Exemples de réponses

Chaque point d’accès répertorié ci-dessus dispose d’un exemple concret de réponse JSON ci-dessous.

Les exemples sont abrégés pour rester lisibles. Les réponses réelles peuvent contenir davantage d’éléments et de champs ; les identifiants, nombres, URL et dates dépendent de vos données et droits d’accès.

Résultats du compte et du catalogue agrégé

GET/api/mobile/me

Exemple de réponse 200

{
    "id": 42,
    "username": "ada",
    "email": "ada@example.com",
    "roles": [
        "ROLE_USER"
    ],
    "personas": [
        "musician"
    ],
    "favoriteInstrumentIds": [
        10
    ],
    "locale": "en",
    "isVerified": true,
    "tier": "premium",
    "subscriptionPlan": "premium",
    "subscriptionTier": "premium",
    "subscriptionPlanCode": "premium-monthly",
    "groupQuota": 10,
    "canMakePrivate": true,
    "canUsePaidFeatures": true
}
GET/api/mobile/music-bootstrap

Exemple de réponse 200

{
    "meta": {
        "includes": [
            "keys",
            "key_scales",
            "instruments"
        ],
        "count": {
            "keys": 24,
            "key_scales": 202,
            "instruments": 33
        }
    },
    "data": {
        "keys": [
            {
                "id": 8,
                "baseTone": {
                    "id": 1,
                    "name": "C",
                    "midi": 48,
                    "solfege": "do"
                },
                "alteration": 0,
                "accidentals": 0,
                "signature": "",
                "frequency": 415.305,
                "color": "#ff0000"
            }
        ],
        "key_scales": [
            {
                "id": 1,
                "keyId": 8,
                "name": "Major (Ionian)",
                "type": "scale",
                "signature": "1,2,2,1,2,2,2",
                "fullName": "C Major (Ionian)",
                "keyToneName": "C",
                "canonicalPath": "\/chords-and-scales\/c\/major-ionian",
                "tones": [
                    {
                        "intervalId": 1,
                        "intervalAbbr": "1",
                        "noteName": "C",
                        "midiNumber": 48
                    },
                    {
                        "intervalId": 3,
                        "intervalAbbr": "2",
                        "noteName": "D",
                        "midiNumber": 50
                    }
                ]
            }
        ],
        "instruments": [
            {
                "id": 10,
                "name": "Bass (4-string)",
                "slug": "bass-4-string",
                "familyRouteKey": "fretboard",
                "familyCode": "FRETBOARD",
                "familyName": "Fretboard",
                "isPublic": true,
                "isPublished": true,
                "musicSystemIds": [
                    1
                ],
                "allowedPlaybackCapabilities": [
                    "monotonal",
                    "polytonal"
                ]
            }
        ]
    }
}
GET/api/mobile/entities?include=keys,intervals,instruments

Exemple de réponse 200

{
    "meta": {
        "includes": [
            "keys",
            "intervals",
            "instruments"
        ],
        "count": {
            "keys": 24,
            "intervals": 25,
            "instruments": 33
        }
    },
    "data": {
        "keys": [
            {
                "id": 8,
                "baseTone": {
                    "id": 1,
                    "name": "C",
                    "midi": 48,
                    "solfege": "do"
                },
                "alteration": 0,
                "accidentals": 0,
                "signature": "",
                "frequency": 415.305,
                "color": "#ff0000"
            }
        ],
        "intervals": [
            {
                "id": 5,
                "name": "Major Third",
                "abbreviation": "M3",
                "jazzAbbreviation": "3",
                "semitones": 4,
                "color": "#FFFF00",
                "degree": "III"
            }
        ],
        "instruments": [
            {
                "id": 10,
                "name": "Bass (4-string)",
                "slug": "bass-4-string",
                "familyRouteKey": "fretboard",
                "familyCode": "FRETBOARD",
                "familyName": "Fretboard",
                "isPublic": true,
                "isPublished": true,
                "musicSystemIds": [
                    1
                ],
                "allowedPlaybackCapabilities": [
                    "monotonal",
                    "polytonal"
                ]
            }
        ]
    }
}
GET/api/mobile/circular-tracks?limit=1

Exemple de réponse 200

{
    "meta": {
        "resource": "circular_tracks",
        "count": 1,
        "total": 148,
        "limit": 1
    },
    "data": [
        {
            "id": "rhythm:148",
            "kind": "rhythm",
            "name": "Circular Dubstep Half Time",
            "isPublic": true,
            "transport": {
                "bpm": 140,
                "ppq": 960,
                "beatsPerBar": 4,
                "beatUnit": 4
            },
            "ringCount": 4,
            "circularTrack": {
                "id": "standalone-circular-track",
                "type": "CIRCULAR",
                "rings": []
            },
            "source": {
                "type": "rhythm",
                "rhythmId": 148,
                "slug": "circular-dubstep-half-time"
            }
        }
    ]
}

Résultats des collections et éléments mobiles

Tonalités musicales.

GET/api/mobile/keys — Résultat de la collection
{
    "meta": {
        "resource": "keys",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 8,
            "baseTone": {
                "id": 1,
                "name": "C",
                "midi": 48,
                "solfege": "do"
            },
            "alteration": 0,
            "accidentals": 0,
            "signature": "",
            "frequency": 415.305,
            "color": "#ff0000"
        }
    ]
}
GET/api/mobile/keys/8 — Résultat de l’élément
{
    "meta": {
        "resource": "key",
        "count": 7,
        "filters": []
    },
    "data": {
        "id": 8,
        "baseTone": {
            "id": 1,
            "name": "C",
            "midi": 48,
            "solfege": "do"
        },
        "alteration": 0,
        "accidentals": 0,
        "signature": "",
        "frequency": 415.305,
        "color": "#ff0000"
    }
}

Intervalles musicaux.

GET/api/mobile/intervals — Résultat de la collection
{
    "meta": {
        "resource": "intervals",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 5,
            "name": "Major Third",
            "abbreviation": "M3",
            "jazzAbbreviation": "3",
            "semitones": 4,
            "color": "#FFFF00",
            "degree": "III"
        }
    ]
}
GET/api/mobile/intervals/5 — Résultat de l’élément
{
    "meta": {
        "resource": "interval",
        "count": 7,
        "filters": []
    },
    "data": {
        "id": 5,
        "name": "Major Third",
        "abbreviation": "M3",
        "jazzAbbreviation": "3",
        "semitones": 4,
        "color": "#FFFF00",
        "degree": "III"
    }
}

Relations entre tonalités et gammes.

GET/api/mobile/key-scales — Résultat de la collection
{
    "meta": {
        "resource": "key_scales",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 1,
            "keyId": 8,
            "name": "Major (Ionian)",
            "type": "scale",
            "signature": "1,2,2,1,2,2,2",
            "fullName": "C Major (Ionian)",
            "keyToneName": "C",
            "canonicalPath": "\/chords-and-scales\/c\/major-ionian",
            "tones": [
                {
                    "intervalId": 1,
                    "intervalAbbr": "1",
                    "noteName": "C",
                    "midiNumber": 48
                },
                {
                    "intervalId": 3,
                    "intervalAbbr": "2",
                    "noteName": "D",
                    "midiNumber": 50
                }
            ]
        }
    ]
}
GET/api/mobile/key-scales/1 — Résultat de l’élément
{
    "meta": {
        "resource": "key_scale",
        "count": 9,
        "filters": []
    },
    "data": {
        "id": 1,
        "keyId": 8,
        "name": "Major (Ionian)",
        "type": "scale",
        "signature": "1,2,2,1,2,2,2",
        "fullName": "C Major (Ionian)",
        "keyToneName": "C",
        "canonicalPath": "\/chords-and-scales\/c\/major-ionian",
        "tones": [
            {
                "intervalId": 1,
                "intervalAbbr": "1",
                "noteName": "C",
                "midiNumber": 48
            },
            {
                "intervalId": 3,
                "intervalAbbr": "2",
                "noteName": "D",
                "midiNumber": 50
            }
        ]
    }
}

Harmonies visibles.

GET/api/mobile/harmonies — Résultat de la collection
{
    "meta": {
        "resource": "harmonies",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 42,
            "name": "Autumn Leaves",
            "ownerId": 3,
            "ownerUsername": "jolymusic",
            "isPublic": true,
            "events": [
                {
                    "id": 101,
                    "startTick": 0,
                    "durationTick": 3840,
                    "keyId": 8,
                    "scaleId": 1,
                    "label": "Cmaj7"
                }
            ],
            "sections": [
                {
                    "id": 12,
                    "sectionType": "A",
                    "label": "Theme A",
                    "position": 0,
                    "repeatCount": 2
                }
            ],
            "ownerTags": [
                "jazz"
            ],
            "userTags": []
        }
    ]
}
GET/api/mobile/harmonies/42 — Résultat de l’élément
{
    "meta": {
        "resource": "harmony",
        "count": 9,
        "filters": []
    },
    "data": {
        "id": 42,
        "name": "Autumn Leaves",
        "ownerId": 3,
        "ownerUsername": "jolymusic",
        "isPublic": true,
        "events": [
            {
                "id": 101,
                "startTick": 0,
                "durationTick": 3840,
                "keyId": 8,
                "scaleId": 1,
                "label": "Cmaj7"
            }
        ],
        "sections": [
            {
                "id": 12,
                "sectionType": "A",
                "label": "Theme A",
                "position": 0,
                "repeatCount": 2
            }
        ],
        "ownerTags": [
            "jazz"
        ],
        "userTags": []
    }
}

Rythmes circulaires.

GET/api/mobile/circular-rhythms — Résultat de la collection
{
    "meta": {
        "resource": "circular_rhythms",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 148,
            "name": "Circular Dubstep Half Time",
            "slug": "circular-dubstep-half-time",
            "isPublic": true,
            "ownerTags": [
                "dubstep",
                "half-time"
            ],
            "state": {
                "bpm": 140,
                "ppq": 960,
                "beatsPerBar": 4
            },
            "updatedAt": "2026-06-09T00:30:30+00:00"
        }
    ]
}
GET/api/mobile/circular-rhythms/148 — Résultat de l’élément
{
    "meta": {
        "resource": "circular_rhythm",
        "count": 7,
        "filters": []
    },
    "data": {
        "id": 148,
        "name": "Circular Dubstep Half Time",
        "slug": "circular-dubstep-half-time",
        "isPublic": true,
        "ownerTags": [
            "dubstep",
            "half-time"
        ],
        "state": {
            "bpm": 140,
            "ppq": 960,
            "beatsPerBar": 4
        },
        "updatedAt": "2026-06-09T00:30:30+00:00"
    }
}

Métadonnées des moteurs sonores.

GET/api/mobile/sound-engines — Résultat de la collection
{
    "meta": {
        "resource": "sound_engines",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 1,
            "code": "tone",
            "label": "Tone.js",
            "description": "Browser synthesis and sampling engine",
            "isEnabled": true,
            "defaultConfig": {
                "playMode": "pitched"
            },
            "supportedPlaybackCapabilities": [
                "monotonal",
                "polytonal",
                "percussion"
            ]
        }
    ]
}
GET/api/mobile/sound-engines/1 — Résultat de l’élément
{
    "meta": {
        "resource": "sound_engine",
        "count": 7,
        "filters": []
    },
    "data": {
        "id": 1,
        "code": "tone",
        "label": "Tone.js",
        "description": "Browser synthesis and sampling engine",
        "isEnabled": true,
        "defaultConfig": {
            "playMode": "pitched"
        },
        "supportedPlaybackCapabilities": [
            "monotonal",
            "polytonal",
            "percussion"
        ]
    }
}

Préréglages sonores visibles.

GET/api/mobile/sound-presets — Résultat de la collection
{
    "meta": {
        "resource": "sound_presets",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 29,
            "name": "Tone.js \u2022 Realistic Acoustic Kit",
            "color": "#e67e22",
            "isPublic": true,
            "isKit": true,
            "playbackCapability": "percussion",
            "engine": {
                "id": 1,
                "code": "tone",
                "label": "Tone.js"
            },
            "playback": {
                "engineCode": "tone",
                "playMode": "percussion",
                "toneInstrument": "db-tone:29"
            }
        }
    ]
}
GET/api/mobile/sound-presets/29 — Résultat de l’élément
{
    "meta": {
        "resource": "sound_preset",
        "count": 8,
        "filters": []
    },
    "data": {
        "id": 29,
        "name": "Tone.js \u2022 Realistic Acoustic Kit",
        "color": "#e67e22",
        "isPublic": true,
        "isKit": true,
        "playbackCapability": "percussion",
        "engine": {
            "id": 1,
            "code": "tone",
            "label": "Tone.js"
        },
        "playback": {
            "engineCode": "tone",
            "playMode": "percussion",
            "toneInstrument": "db-tone:29"
        }
    }
}

Articles publiés.

GET/api/mobile/articles — Résultat de la collection
{
    "meta": {
        "resource": "articles",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 17,
            "title": "Understanding tonal gravity",
            "slug": "understanding-tonal-gravity",
            "content": "<p>Article content\u2026<\/p>",
            "published": true,
            "createdAt": "2026-01-12T10:00:00+00:00",
            "updatedAt": "2026-06-10T14:30:00+00:00",
            "tags": [
                "harmony",
                "theory"
            ]
        }
    ]
}
GET/api/mobile/articles/17 — Résultat de l’élément
{
    "meta": {
        "resource": "article",
        "count": 8,
        "filters": []
    },
    "data": {
        "id": 17,
        "title": "Understanding tonal gravity",
        "slug": "understanding-tonal-gravity",
        "content": "<p>Article content\u2026<\/p>",
        "published": true,
        "createdAt": "2026-01-12T10:00:00+00:00",
        "updatedAt": "2026-06-10T14:30:00+00:00",
        "tags": [
            "harmony",
            "theory"
        ]
    }
}

Métadonnées des médias visibles.

GET/api/mobile/media-assets — Résultat de la collection
{
    "meta": {
        "resource": "media_assets",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 91,
            "title": "Practice backing track",
            "nameSlug": "practice-backing-track",
            "kind": "audio",
            "audience": "public",
            "mimeType": "audio\/mpeg",
            "path": "\/uploads\/media\/practice-backing-track.mp3",
            "durationMs": 182000,
            "isPublic": true
        }
    ]
}
GET/api/mobile/media-assets/91 — Résultat de l’élément
{
    "meta": {
        "resource": "media_asset",
        "count": 9,
        "filters": []
    },
    "data": {
        "id": 91,
        "title": "Practice backing track",
        "nameSlug": "practice-backing-track",
        "kind": "audio",
        "audience": "public",
        "mimeType": "audio\/mpeg",
        "path": "\/uploads\/media\/practice-backing-track.mp3",
        "durationMs": 182000,
        "isPublic": true
    }
}

Catalogue des instruments.

GET/api/mobile/instruments — Résultat de la collection
{
    "meta": {
        "resource": "instruments",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 10,
            "name": "Bass (4-string)",
            "slug": "bass-4-string",
            "familyRouteKey": "fretboard",
            "familyCode": "FRETBOARD",
            "familyName": "Fretboard",
            "isPublic": true,
            "isPublished": true,
            "musicSystemIds": [
                1
            ],
            "allowedPlaybackCapabilities": [
                "monotonal",
                "polytonal"
            ]
        }
    ]
}
GET/api/mobile/instruments/10 — Résultat de l’élément
{
    "meta": {
        "resource": "instrument",
        "count": 10,
        "filters": []
    },
    "data": {
        "id": 10,
        "name": "Bass (4-string)",
        "slug": "bass-4-string",
        "familyRouteKey": "fretboard",
        "familyCode": "FRETBOARD",
        "familyName": "Fretboard",
        "isPublic": true,
        "isPublished": true,
        "musicSystemIds": [
            1
        ],
        "allowedPlaybackCapabilities": [
            "monotonal",
            "polytonal"
        ]
    }
}

Catalogue des rangées d’instrument.

GET/api/mobile/instrument-rows — Résultat de la collection
{
    "meta": {
        "resource": "instrument_rows",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 2137,
            "instrumentId": 20,
            "instrumentName": "Drum Kit",
            "familyCode": "DRUMS",
            "midi": 36,
            "label": "Kick",
            "x": 1,
            "y": 3,
            "z": 0,
            "config": {
                "drum": "kick",
                "midi": 36,
                "isPercussion": true
            }
        }
    ]
}
GET/api/mobile/instrument-rows/2137 — Résultat de l’élément
{
    "meta": {
        "resource": "instrument_row",
        "count": 10,
        "filters": []
    },
    "data": {
        "id": 2137,
        "instrumentId": 20,
        "instrumentName": "Drum Kit",
        "familyCode": "DRUMS",
        "midi": 36,
        "label": "Kick",
        "x": 1,
        "y": 3,
        "z": 0,
        "config": {
            "drum": "kick",
            "midi": 36,
            "isPercussion": true
        }
    }
}

Catalogue des systèmes musicaux.

GET/api/mobile/music-systems — Résultat de la collection
{
    "meta": {
        "resource": "music_systems",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 1,
            "name": "12-tone equal temperament",
            "slug": "tet-12",
            "systemType": "equal_temperament",
            "octaveRatio": 2,
            "divisions": 12,
            "isPublic": true,
            "intervals": [
                {
                    "stepIndex": 0,
                    "label": "Unison",
                    "ratio": 1,
                    "cents": 0,
                    "color": "#FF0000"
                },
                {
                    "stepIndex": 1,
                    "label": "Minor Second",
                    "ratio": 1.059463,
                    "cents": 100,
                    "color": "#FF6600"
                }
            ]
        }
    ]
}
GET/api/mobile/music-systems/1 — Résultat de l’élément
{
    "meta": {
        "resource": "music_system",
        "count": 8,
        "filters": []
    },
    "data": {
        "id": 1,
        "name": "12-tone equal temperament",
        "slug": "tet-12",
        "systemType": "equal_temperament",
        "octaveRatio": 2,
        "divisions": 12,
        "isPublic": true,
        "intervals": [
            {
                "stepIndex": 0,
                "label": "Unison",
                "ratio": 1,
                "cents": 0,
                "color": "#FF0000"
            },
            {
                "stepIndex": 1,
                "label": "Minor Second",
                "ratio": 1.059463,
                "cents": 100,
                "color": "#FF6600"
            }
        ]
    }
}

État résolu d’un système musical.

GET/api/mobile/music-systems/1/state — Résultat de l’élément
{
    "meta": {
        "resource": "music_system_state",
        "count": 5,
        "filters": []
    },
    "data": {
        "musicSystemId": 1,
        "slug": "tet-12",
        "divisions": 12,
        "octaveRatio": 2,
        "tones": [
            {
                "stepIndex": 0,
                "label": "C",
                "cents": 0,
                "frequency": 261.626
            },
            {
                "stepIndex": 1,
                "label": "C\u266f",
                "cents": 100,
                "frequency": 277.183
            }
        ]
    }
}

Résultats des utilitaires publics

GET/api/keys

Exemple de réponse 200

[
    {
        "id": 8,
        "baseTone": {
            "id": 1,
            "name": "C",
            "midi": 48,
            "solfege": "do"
        },
        "alteration": 0,
        "accidentals": 0,
        "signature": "",
        "frequency": 415.305,
        "color": "#ff0000"
    }
]
GET/api/instruments

Exemple de réponse 200

[
    {
        "id": 10,
        "name": "Bass (4-string)",
        "slug": "bass-4-string",
        "familyRouteKey": "fretboard",
        "familyCode": "FRETBOARD",
        "familyName": "Fretboard",
        "isPublic": true,
        "isPublished": true,
        "musicSystemIds": [
            1
        ],
        "allowedPlaybackCapabilities": [
            "monotonal",
            "polytonal"
        ]
    }
]
GET/api/instruments_select

Exemple de réponse 200

{
    "items": [
        {
            "id": 10,
            "name": "Bass (4-string)",
            "familyCode": "FRETBOARD",
            "isPublished": true,
            "musicSystemIds": [
                1
            ],
            "isFavorite": false,
            "slug": "bass-4-string"
        }
    ]
}
GET/api/instrument_rows_select?instrumentId=20

Exemple de réponse 200

{
    "items": [
        {
            "id": 2137,
            "instrumentId": 20,
            "instrumentName": "Drum Kit",
            "familyCode": "DRUMS",
            "midi": 36,
            "label": "Kick",
            "x": 1,
            "y": 3,
            "z": 0,
            "config": {
                "drum": "kick",
                "midi": 36,
                "isPercussion": true
            }
        }
    ]
}
GET/api/drum-folders.json

Exemple de réponse 200

{
    "folders": [
        {
            "label": "acoustic-kit",
            "path": "\/samples\/drums\/acoustic-kit"
        }
    ]
}
GET/api/drum-folder-files.json?path=/samples/drums/acoustic-kit

Exemple de réponse 200

{
    "path": "\/samples\/drums\/acoustic-kit",
    "files": [
        {
            "url": "\/samples\/drums\/acoustic-kit\/kick.wav",
            "name": "kick.wav"
        }
    ]
}

Erreurs et dépannage

StatutSignificationAction
200SuccèsUtilisez les données de la réponse.
304La représentation en cache est à jourRéutilisez le corps mis en cache.
401Jeton absent ou invalideVérifiez l’en-tête et remplacez tout jeton perdu ou révoqué.
403L’utilisateur authentifié n’est pas autoriséVérifiez la formule, la propriété et les autorisations.
404Ressource indisponibleVérifiez le chemin et l’identifiant.
422Échec de validation en écritureConsultez les détails de validation dans la réponse JSON.

Référence OpenAPI

La référence interactive intégrée documente les schémas et opérations des ressources API Platform au-delà des points d’intégration présentés ci-dessus.

Ouvrir la référence de l’API