department-of-veterans-affairs / va.gov-team

Public resources for building on and in support of VA.gov. Visit complete Knowledge Hub:
https://depo-platform-documentation.scrollhelp.site/index.html
282 stars 201 forks source link

Consume New Lighthouse Benefits Reference Data API #36651

Open vhenry07 opened 2 years ago

vhenry07 commented 2 years ago

Issue Description

The EVSS Data Reference Service is now the Benefits Reference Data API on the VA Lighthouse APIs developer platform. We'll need to migrate to the new api.


Tasks

To access the new API, you will need to:

  1. Get LH to grant our current key access to their new ref data serviceGet. They might want us to use a new key that we only use to access this ref data service. There are actually 2 keys in play here, one for staging and one for production

  2. Create a new endpoint in vets api. Leave the old endpojnt as is. Leaving the old endpoint in place will facilitate a partial user slow rollout using flipper. For this job, as far as the backend is concerned, flipper is not in play. The FE will have to create and use a new flipper feature flag and direct calls to either this new service or the existing ref service.

The Lighthouse developer portal has more information about the new Benefits Reference Data API documentation and the changes in the release notes: https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current

Acceptance Criteria

michelpmcdonald commented 2 years ago

We have an existing API(vets-api\config\settings.yml) key that we use to access Lighthouse, ideally we would just have to contact lighthouse and have them allow our existing Lighthouse API key to access the Benefits Reference Data service. (Lighthouse seems to manage their keys on a service by service level).

michelpmcdonald commented 2 years ago

More background: We currently use EVSS to pull lists of all countries, states and separation locations. Usually this data is loaded up into some kind of list that the user can pick from, so this is just a service to provide 'standard' countries, states and separation locations: https://github.com/department-of-veterans-affairs/vets-api/blob/2324cccc3ffc5096e08643195fdaebfe1d7b212a/lib/evss/reference_data/service.rb#L11

We are targeting replacing our current existing EVSS Ref data service: https://developer.va.gov/explore/benefits/docs/benefits_reference_data?version=current

The old EVSS separation locations call should use the new intake-sites endpoint.

michelpmcdonald commented 2 years ago

Also the existing service caches the results at the controller level: https://github.com/department-of-veterans-affairs/vets-api/blob/26e2c46a87db7cac36bd98e826dce7029eaaaaeb/app/controllers/v0/addresses_controller.rb#L37