# Penaos ober evit klask daoulagad mont dave ganeoc'h gant un API ?

> Diskouez ar gweladennoù dave gant API ROOTE : kevreadvezhioù, rad, skouer JavaScript, lenn ar marhadoù hag implij an dielfenn.

Source: https://www.roote.ai/br/guides/kenoberia-disoer-vezhien-dave-gant-api/
Language: br
Author: ROOTE

Evit klask daoulagadoù dindan ur poent, roit e led latitudoù, lonjitudoù hag ur rad d'un API kenober. Gwiriit statud ar respont, an unvioù reenet hag an titouriñ war ar leinoù a-raok diskouez ar roll pe ar c'hartez.

E kontrakt ROOTE roote-1.0.0, heñvel GET /v1/transit/nearby a dizolko lec'hioù mont dave kenober. Ne dibaber ket ar palioù kudennoù pe goulennoù amzer-prenez. Klaskoù war ur lec'h ha klaskoù war e diwallad betek ar wech n'eus an daou rak-se zo daou labour disheñvel.

## Enrollañ an divizoù

Ar goulenn implij lat evit latitudoù hag lng evit lonjitudoù. An anv degemer lon ivez zo bet displeget e kontrakt. Ar divizoù radius a dalvez evit ar mad e metr; limit a serro ar niver eus an darempredoù goulennet. Gallout a ra ar filtr modes degas an doareoù mont dave.

| Divizoù | Skouer | Soll |
| --- | --- | --- |
| lat | 44.8378 | Latitudoù ar poent klask |
| lng | -0.5792 | Lonjitudoù ar poent klask |
| radius | 600 | Rad goulennet e metr |
| limit | 10 | Gwerzhoù goulennet e mab |
| modes | bus,tramm | Modeoù klasket |

Ar kevreadvezhioù-se a zo skouerioù klask e Bordeaux; ne raont ket eus unan eus an daoulagadoù digarez-mat. Gwenit ouzh ar [kontrakt OpenAPI ROOTE](https://api.roote.ai/openapi.json) evit an doaioù, ar c’hleadoù hag ar merc’hed ampart-skeud.

## Kas ur goulenn gentañ a-dreñv war ar servijer

Setu ur skouer JavaScript evit ur strollad Node.js a zo gant fetch. Ar jekt, ma vez kadarnaet gant ho mignoned, a chom e barzh ur stumm ambiente warc'hoazh. Ar skouer ne dalvez ket evit kas un digorf eus ar merdeer war ar browser.

```
async function rechercherArrets(token = process.env.ROOTE_API_TOKEN) {
  const url = new URL('https://api.roote.ai/v1/transit/nearby');
  url.search = new URLSearchParams({
    lat: '44.8378',
    lng: '-0.5792',
    radius: '600',
    limit: '10',
    modes: 'bus,tram'
  }).toString();

  const headers = { Accept: 'application/json' };
  if (token) headers.Authorization = `Bearer ${token}`;

  const response = await fetch(url, {
    headers,
    signal: AbortSignal.timeout(10000)
  });
  if (!response.ok) {
    throw new Error(`Erreur HTTP ${response.status}`);
  }

  const data = await response.json();
  if (data.contract_version !== 'roote-1.0.0') {
    throw new Error('Version du contrat non reconnue');
  }
  if (!['success', 'empty', 'partial'].includes(data.status)) {
    throw new Error('Recherche indisponible');
  }
  if (!Array.isArray(data.stations)) {
    throw new Error('Réponse sans collection stations valide');
  }

  return {
    status: data.status,
    stations: data.stations,
    lines: data.lines,
    operators: data.operators,
    coverage: data.coverage,
    warnings: data.warnings,
    attributions: data.attributions,
    meta: data.meta
  };
}
```

Ar gement nevez zo ret d'ober an hent da get eo anavezet pe gant un jekt, hervez ar reolennoù. Gwiriit ho gwirioù gant ar begrioù ober. Un aozadur HTTP gallet ne aot dezhañ ket derstal e kontañ; e produñs eo ret ober gwiriadur evit oberien diazezoù dindan ar skem.

## Lenn an unvioù hag o darempredoù

An unvioù stations a gont an daoulagadoù. Evit pep unan, kompren a rit id, name, entity_kind, location hag distance_meters. Ar stumm line_ids ha operator_ids a ro da gelenn an urzhioù lines ha operators, ma vezont e-barzh.

Diskouez distaounad geografi evel-hen. Na threezout ket evit distaounad bevañ hep hesk an hent. [ar gourc'hemennet ](https://www.roote.ai/br/guides/kitelouta-mazh-gar-bus-pe-tram/) a zispleg perak e c'hell an tizhioù implijout ar zreder real.

Derou emañ ivez dre ret diwar-benn titouroù dianavezet. E kontrakt, accessibility.wheelchair a c'hall mirout unknown : netra na blij ket muioc'h eget gwelet na nann. Ul lañs kinniget n'eo ket ur roll.

## Diskouez ur roll pe ur c'hartez

Implij an anv id evit liorz un doare diogel er UI, an anv evit an testenn, hag an location evit pozioù. Ober gant heuliadennoù dre ar renkadenn eus ar c'hinnigoù an eil nebeudoc'h eget dre c'hoari gantañ o anvioù.

Ma filout livioù pe testenn eus ar data, sellet outi evel rantif evit skarzhañ. Evit an anvioù, implij testenn na HTML laket en-dro.

Dalc'hit war an titouroù hag er memes tregont ha diskouez an hini eo ret hervez an kontrakt.

## Gestion result vloch, respont dre vloaz pe fazi

Un eskemm empty a lavaran klask hepken goude an ehan e lec'h e vez ket an darempredoù. Ne ziskouez ket an nemeur a zremm dave. Un eskemm partial a c'hall kousket lec'hioù mat gant displegañ nac'hoù; diskouez an darempredoù hag an eilenn hag ur sigareller miret.

Lenn ar c'hobriuzennoù, ar goulennoù ha an dielfenn e meta. Ur roll dic'hwg ma n'eo ket distro pe dalvezout. Pa vez faezioù war an torad pe HTTP, diskouez ne vez ket digor, hep dibab "ebarzh ar manac'h".

E-keñver ur kod 429, gwel ur bajennenn diiverkast ennañ ur flas-kod debriñ. Pa garfe, n'ann ket en un hent kevankiñ farsusted.

## Distanter stations, zonennoù ha quais

An tachennañ entity_kind a diferenz a liveoù lec'hioù. Pevar diskennadenn a c'hell dont eus kelc'hiad, daou anv resis a ghell bezañ eus servijoù disheñvel.

Na llanjit ket lec'hioù gant an nebeud a ziwallerezh hep bezañ war dei. Implij an darempredoù diwar-benn an anvioù servijoù. Hon kentelioù [GTFS, GTFS-RT ha GBFS](https://www.roote.ai/br/guides/gtfs-gtfs-rt-ha-gbfs-pehiniou-piv-ruz-e/) a zispleg deoc'h ar c'hemm-data.

## Prientiñ an enbrannoù e produñs

Stardait ar klaskadennoù pa vez un divennoù disheñvel pe tagadennoù. Dielfennañ ar c'halvadennoù kasoni evit hud ha monsieur-kuzh. Diskouez ar c'haskaer dindan ar goudeoù hag ar bennadoù.

Ul listenn lec'hioù ha live amzer prenañ n'int ket ar memes koumouladoù freskder. Gwiriat e-glas gant respontoù kenemet, vac'h, partial ha fazi a-raok fardañ ar c'helaouenn d'an implijerien.

## Kuzhat ar c'hlask d'ar servijoù kêr

Levrigoù ha servijoù kêr a implij hentenn disheñvel. Evit klask toiled war-zu an hevelep lec'h, ar hent GET /v1/services/nearby a c'houl goulenn lat ha lon, gant types=toilets. Na kas ket modes=toilets d'ar hent-se : ar ger-mañ a zo evit URL ar gartenn, ket evit ar filtre Servijoù.

An enklask JavaScript a-is a seblant URL Servijoù evit ur troad 600 metr. Ne laka ket ar goulenn da redek ; adimplit kontrolennoù HTTP ha kontradoù komzet a-raok. Ar sevel a vez servijoù, nemet stasioù. Distreiñ service_type, location, distance_meters hag an aotreet.

Ar kontrad REST a gomzo a-us diwar toiled, drinking_water, fountain, wifi, parking, charging, aed ha locker. An dibaboù ganto a c'hall difaziañ diouzh MCP. Evit an arouezioù a vez derc'hel, o mouezhioù ha doeroù eus ho madoù, kit d'ar skeudenn eus ar plugenn implijet.

Ar c'hadoù eus ur servij n'int ket karget da bout o digor e-pad ar goulenn. Ar gwel ebet ne zo ket evel un dibarb sservij ; ur roll goullo o tont eus un fazi ne a testeni ket anezhi. Tennañ an titouroù eus pep familh e-pad ma ne laker ket da heul un anv ha ur poent sengl.

Evit ur gartenn kevreet, emglev ouzh an disoc'hoù gant o familh hag o kodoù. Diskouez un fazi Servijoù hep diskallet a-nevez levrioù a roer gant Transit. Ar goulenn a chom tue gant ar poent-se, met ar statudoù ha ar stummoù a c'hall chom disheñvel.

```
const url = new URL('https://api.roote.ai/v1/services/nearby');
url.search = new URLSearchParams({
  lat: '44.8416106', lon: '-0.5810938',
  radius: '600', limit: '10', types: 'toilets'
}).toString();
console.log(url.toString());
```

[War-sav ar goulenn digalon pe goulenn faziek](https://www.roote.ai/br/guides/kemmadur-ha-fall-dapi-ere-diferensa/)

[Staliañ ur gartenn difazier direizh en ur lec'hienn](https://www.roote.ai/br/guides/enplijout-karte-levrerezh-rodell/)

[Sevel un anv a live war ar goulenn-mañ](https://www.roote.ai/br/guides/krouid-unan-hendad-kened-mobilite-war-urtunad-ur-anez/)

## Goulennou fur

### Ha Nearby a ro ar palioù debret neuze ?

Ne vez ket e kontrakt amañ. Ar routenn-mañ a dizolko lec'hioù mont dave. Palioù dibabet a fell gouarnamant.

### Gallout a rafe diskouez ur roll bevañ pa vez un fazi ?

Diskouez ur bajenn diazezet. Ur fazi ne diskouez ket e vez ket daoulagadoù.

### Gallout a ra lakaat ar jekt API er c'huzul-vout ?

Ur furmelañ a rank chom war servijer. Implij an doare digor hervez ho kerzh ha ho kont.
