Cleanup documentation

This commit is contained in:
Aaron Lindsay 2017-04-10 20:51:02 -04:00
parent be66031c49
commit d6aa6608e7
1 changed files with 43 additions and 40 deletions

83
doc.go
View File

@ -3,17 +3,17 @@ Package ofxgo seeks to provide a library to make it easier to query and/or
parse financial information with OFX from the comfort of Golang, without having
to deal with marshalling/unmarshalling the SGML or XML. The library does *not*
intend to abstract away all of the details of the OFX specification, which
would be very difficult to do well. Instead, it exposes the OFX SGML/XML
hierarchy as structs which mostly resemble it. For more information on OFX and
to read the specification, see http://ofx.net.
would be difficult to do well. Instead, it exposes the OFX SGML/XML hierarchy
as structs which mostly resemble it. For more information on OFX and to read
the specification, see http://ofx.net.
There are three main top-level objects defined in ofxgo. These are Client,
Request, and Response. The Request and Response objects, predictably, contain
representations of OFX requests and responses as structs. Client contains
settings which control how requests and responses are marshalled and
unmarshalled (the OFX version used, client id and version, whether to indent
SGML/XML elements), and provides helper methods for making requests and
optionally parsing the response using those settings.
Request, and Response. The Request and Response objects represent OFX requests
and responses as Golang structs. Client contains settings which control how
requests and responses are marshalled and unmarshalled (the OFX version used,
client id and version, whether to indent SGML/XML elements, etc.), and provides
helper methods for making requests and optionally parsing the response using
those settings.
Every Request object contains a SignonRequest element, called Signon. This
element contains the username, password (or key), and the ORG and FID fields
@ -25,39 +25,42 @@ and Message fields populated by the server, or the CodeMeaning() and
CodeConditions() functions which return information about a particular code as
specified by the OFX specification).
Each top-level Request or Response object may contain zero or more Messages,
represented by a slice of objects satisfying the Message interface. These
messages are grouped by function into message sets, just as the OFX
specification groups them. Here is a list of the field names of each of these
message sets (each represented by a slices) in the Request/Response objects,
along with the concrete types of Messages they may contain:
Each top-level Request or Response object may contain zero or more messages,
sorted into named slices by message set, just as the OFX specification groups
them. Here are the supported types of Request/Response objects (along with the
name of the slice of Messages they belong to in parentheses):
Signup:
AcctInfoRequest/AcctInfoResponse: A listing of the valid accounts for this login
Banking:
StatementRequest/StatementResponse: The balance (and optionally list of
transactions) for a bank account
CreditCards:
CCStatementRequest/CCStatementResponse: The balance (and optionally list of
transactions) for a credit card
Investments:
InvStatementRequest/InvStatementResponse: The balance and/or list of
transactions for an investment account
Securities:
SecListRequest/SecListResponse: List securities and their prices, etc.
SecurityList: The actual list of securities, prices, etc. (even if
SecListResponse is present, it doesn't contain the security information). Note
that this is frequently returned with an InvStatementResponse, even if
SecListRequest wasn't passed to the server.
Profile:
ProfileRequest/ProfileResponse: Determine the server's capabilities (which
messages sets it supports, along with individual features)
Requests:
var r AcctInfoRequest // (Signup) Request a list of the valid accounts
// for this user
var r CCStatementRequest // (CreditCard) Request the balance (and optionally
// list of transactions) for a credit card
var r StatementRequest // (Bank) Request the balance (and optionally list
// of transactions) for a bank account
var r InvStatementRequest // (InvStmt) Request balance, transactions,
// existing positions, and/or open orders for an
// investment account
var r SecListRequest // (SecList) Request securities details and prices
var r ProfileRequest // (Prof) Request the server's capabilities (which
// messages sets it supports, along with features)
Responses:
var r AcctInfoResponse // (Signup) List of the valid accounts for this
// user
var r CCStatementResponse // (CreditCard) The balance (and optionally list of
// transactions) for a credit card
var r StatementResponse // (Bank): The balance (and optionally list of
// transactions) for a bank account
var r InvStatementResponse // (InvStmt) The balance, transactions, existing
// positions, and/or open orders for an
// investment account
var r SecListResponse // (SecList) Returned as a result of
// SecListRequest, but only contains request
// status
var r SecurityList // (SecList) The actual list of securities, prices,
// etc. (sent as a result of SecListRequest or
// InvStatementRequest)
var r ProfileResponse // (Prof) Describes the server's capabilities
When constructing a Request, simply append the desired message to the message
set it belongs to. For Responses, it is the user's responsibility to make type