# Changes & Deprecations

The introduction of new REST APIs in version 2 and the move to an operations based model has resulted in some version 1 paths being flagged for deprecation.

It is recommended that applications and plugins referencing these deprecated paths update their operation to reference the version 2 paths.

## Changes

The following changes have been implemented with the introduction of Resources API and apply to applications using the `./signalk/v2/resources` endpoint.

Note: These changes DO NOT impact applications using the `./signalk/v1/resources` endpoint.

### 1. Resource ID prefix assignment

The version 1 specification defined resource Ids with the following format `urn:mrn:signalk:uuid:<UUIDv4>`.

e.g. `urn:mrn:signalk:uuid:18592f80-3425-43c2-937b-0be64b6be68c`

The Resource API has dropped the use the prefix and ids are now just a uuidv4 value.

e.g. `18592f80-3425-43c2-937b-0be64b6be68c`

This format is used for both accessing a resource e.g. `/signalk/v1/api/resources/waypoints/18592f80-3425-43c2-937b-0be64b6be68c` as well as the value within an `href` attribute.

Example:

    {
       "name": "...",
       "descripton": "...",
       "href": "/resources/waypoints/18592f80-3425-43c2-937b-0be64b6be68c",
       ...
    }

### 2. Resource Attributes

The Resources API has updated the definition of the following resources and may break applications that simply shift to using the `v2` api without catering for the changes:

- routes: removed the `start`, `end` properties.
- waypoints: removed `position` attribute, added `name`, `description` and `type` attributes.
- regions: removed `geohash` attribute, added `name` and `description` properties.
- notes: removed `geohash` and `region` attributes, added `href` and `properties` attributes.
- charts: There has been a significant changes to include support for WMS, WMTS and TileJSON sources.

Please see the Resources OpenAPI definition for details.

## Deprecations:

### 1. courseGreatCircle, courseRhumbline paths

With the introduction of the Course API the following paths should now be considered deprecated:

- `/signalk/v1/api/vessels/self/navigation/courseGreatCircle`
- `/signalk/v1/api/vessels/self/navigation/courseRhumbline`

Note: The Course API does currently maintain values in these paths for the purposes of backward compatibility, but applications and plugins referencing these paths should plan to move to using the equivalent paths under `/signalk/v2/api/vessels/self/navigation/course`.