/interview-accountapi

Form3 Account API Take Home Exercise

Primary LanguageMakefileApache License 2.0Apache-2.0

Form3 Take Home Exercise

Instructions

The goal of this exercise is to write a client library in Go to access our fake account API service.

Should

  • Client library should be written in Go
  • Document your technical decisions
  • Implement the Create, Fetch, List and Delete operations on the accounts resource. Note that filtering of the List operation is not required, but you should support paging
  • Ensure your solution is well tested to the level you would expect in a commercial environment. Make sure your tests are easy to read.
  • To keep this exercise simple, fields data.attributes.private_identification, data.attributes.organisation_identification and data.relationships were omitted in the provided fake accountapi implementation - do not implement these in your model
  • If you encounter any problems running the fake accountapi we would encourage you to do some debugging first, before reaching out for help

Docker-compose

  • Add your solution to the provided docker-compose file
  • We should be able to run docker-compose up and see your tests run against the provided account API service

Please don't

  • Use a code generator to write the client library
  • Use a library for your client (e.g: go-resty). Only test libraries are allowed.
  • Implement an authentication scheme

How to submit your exercise

  • Include your name in the README. If you are new to Go, please also mention this in the README so that we can consider this when reviewing your exercise
  • Create a private GitHub repository, copy the docker-compose from this repository
  • Invite @form3tech-interviewer-1 to your private repo
  • Let us know you've completed the exercise using the link provided at the bottom of the email from our recruitment team

License

Copyright 2019-2020 Form3 Financial Cloud

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.