VA Profile
Last Updated: December 4, 2024
VA Profile (formerly Vet360) provides an all-encompassing profile of a person associated with the VA, providing information such as contact info, health benefits, and military personnel data. The objective is to enable users to retrieve a broad range of information with a single request. For additional information please see the API Documentation or the profile service swagger documentation (you must be on the VA network to access both of those links).
Endpoints
Vets API calls VA Profile through the forward proxy. Throughout the codebase, Vets API uses the Service object pattern to call out to VA Profile via the Faraday gem, an HTTP client library. Faraday allows for various middleware integrations, including betamocks for mockdata–useful for lower environment testing–and breakers, a ruby gem and faraday middleware that implements the circuit breaker pattern. This is a common pattern throughout Vets API and many examples of various service classes can be found within the lib directory.
Bios
Consumers can pass along a bioPath
as part of the request body when calling VA Profile. BIOs act as filters, guiding the VA Profile API to provide only the specific data subset that the consumer requests. For instance, the military info API documentation (must be on the VA network to access) features an interactive playground alongside detailed descriptions of various BIOs and other related details. This is the military_personnel service class to be specific.
The example in the code snippets below shows how the defined bioPath
is passed in as part of the request body on the perform method.
Bio path from lib/va_profile/models/service_history.rb
def self.in_json
{
bios: [
{
bioPath: 'militaryPerson.militaryServiceHistory',
parameters: {
scope: 'all'
}
}
]
}.to_json
end
Request body from /lib/va_profile/military_personnel/service.rb
response = perform(:post, identity_path, VAProfile::Models::ServiceHistory.in_json)
Perform method from lib/va_profile/service.rb
def perform(method, path, body = nil, headers = {})
log_dates(body)
VAProfile::Stats.increment('total_operations')
config.base_request_headers.merge(headers)
super(method, path, body, headers)
end
Available data from VA Profile
Endpoints can be found in the original VCR recordings under the uri
Endpoint Name | |
---|---|
1 | Address Validation |
2 | Communication |
3 | Contact Information |
4 | Demographics |
5 | Military Personnel |
6 | Person |
7 | Reference Data |
8 | Veteran Status |
Caching for VA Profile
A how-to caching guide has been created and can be found here. Several caching base classes already exist, making it possible to integrate with a pre-existing caching solution for VA Profile. If not, the provided instructions guide you through setting up a new service class with caching capabilities.
API documentation
The API documentation can be found at the links below. This requires VA Network access via CAG, GFE, etc.
Depending on your level of access, the docs might not be accessible on the web client aka Azure Virtual Desktop aka AVD, since it’s not fully on the VA Network.
Overall VA Profile documentation
Overall ProfileService API docs
MilitaryPersonnel API docs
Test users
Military information
The following is a list of test users that can be used in conjunction with testing VA Profile military information. Vets API mockdata enhancements are underway to deliver simulated responses for VA Profile, primarily useful for lower environments. Credentials for authentication can be found in the Test User Dashboard (TUD) (SOCKS access required).
Military information test users
Additionally, developers are always encouraged to contribute new mockdata entries as needed.
Contacts
Slack channel
#va-profile in OCTO Slack
Help and feedback
Get help from the Platform Support Team in Slack.
Submit a feature idea to the Platform.