- Updated: NuGet packages.
- Minor optimizations.
- Minor cleanup.
- Changed: Presumably enabled Source Link.
- Minor cleanup and refactoring.
This update is a complete rewrite of the whole library. LOTs of breaking changes, but for the better, in my opinion. Overall the library should be more stable, more performant and easier to use both for requesting and for reading the responses.
- Changed:
Geocode
,GeocodeBatch
,ReverseGeocode
, andReverseGeocodeBatch
to be vertical slices where each one contains the specific request and response objects. The slices also contain the validation rules for the request object. - Changed: Switched from JSON.NET to System.Text.Json for better performance.
- Added: FluentValidation for request object validation prior to API call.
- Added:
IGeocodioClientFactory
for applications that need to interact with multiple Geocodio accounts. - Added:
IServiceCollection
extensions directly into the main library. - Changed: Deserialized JSON into better structured objects for easier use.
- Changed: Normalized behavior and naming for requests and responses.
I'm sure there's many changes, additions and removals that I haven't included because I didn't really bother tracking them. The overhaul touched every file in the project and either updated it, merged it, added it, or removed it.
Usage is basically the same, but you'll need to adjust the method calls and/or the request objects.
- Minor code cleanup.
This update started with only one minor goal in time, which I don't even remember anymore, and then escalated into a rewrite of the entire client with lots of improvements.
- Added - A
GetPointAsync
extension method to get only the most accurate latitude and longitude point of an address. - Revised - The internal implementation of
GeocodioClient
to be fully asynchronous and cancellable. - Added - An
IGeocodioClient
interface to use for dependency injection. - Updated -
AccuracyType
with improved descriptions. - Revised - All request and response objects to be better structured.
- Added - A new
ResponseStatus
enum that better indicates the status of a response. - Added - A new
Arex388.Geocodio.Extensions.Microsoft.DependencyInjection
NuGet package to quickly and easily add the client toIServiceCollection
for dependency injection. - Added - Basic unit tests so I don't have to use LINQPad for testing anymore.
- Updated to target v1.6 of the API.
- Matched API corrections for ACS results. This introduced breaking changes due to renaming of properties.
- Updated to target v1.5 of the API.
- Added Zip4 data append field and models.
- Internal code clean up.
- Internal cleanup and hopefully performance optimizations by adding
ConfigureAwait(false)
to allawait
calls.
- Added a timed out response for when a
TaskCancelledException
is thrown when the HttpClient times out.
- Targeting .NET Standard 2.0 now.
- Changed all
const string
properties tostatic readonly string
. - Renamed
GetGeocodeAsync
toGeocodeAsync
. - Renamed
GetGeocodeBatchAsync
toGeocodeBatchAsync
. - Renamed
GetReverseGeocodeAsync
toReverseGeocodeAsync
. - Renamed
GetReverseGeocodeBatchAsync
toReverseGeocodeBatchAsync
. - Changed over-batch limit requests to return a failure response instead of throwing an exception.
- Enabled XML documentation to be generated for intellisense.
- Added
Json
toResponseBase
to capture the raw JSON response from the API. - Added
debug
parameter to theGeocodioClient
constructor. False by default. When set to true, the raw JSON response will be written to theJson
property of the response. - Internal code clean up and rearrangement.
- Changed the invalid request response object.
- Changed the read me to be clearer.
- Added a response object when checking if request is null instead of returning null.
- Added
Census.Place
. - Added fields to
FieldTypes
for Census years 2010 - 2019. - Changed Census response to be an
IDictionary<string, Census>
. - Changed framework target to .NET Standard 1.3.
- Changed client to permanently target API v1.4.
- Changed version to match API version going forward.
- Removed backward compatibility since it is becoming difficult to achieve as the API progresses in versions.
- Removed
EndpointVersions
. - Removed
Census.PlaceFipsCode
.
- Added a
UtcOffsetNormalized
helper property toTimeZone
.
- Added Metropolitan Divisions and Census responses.
- Fixed a small typo on batch geocoding where the requested fields were not returned.
- Now includes backwards compatibility. In the
GeocodioClient
constructor you can now pass a third argument for the endpoint version usingEndpointVersions
constants.
- Now includes full support for all fields and their responses.
- Initial release.