Hi!
So we just hit a weird issue at work that requires some changes to how we interact with a web service. As far as my part goes, it's really incredibly simple (I think). I need to find all the PDF files we send to someone, and put the tags on it that allow you to send it to Docusign for signing. There's a few problems with this though on my end; mostly related to me being lost at the very beginning of the process:
1) I literally did not know what XSL, XSLT, API Integration, or XML Schemas were until yesterday.
2) I have no idea what PDF files get sent to whom, or which ones need signing. But that isn't really why I'm here; that's just something I need to ask my boss about.
3) I have no idea where these PDF files are created/edited or how to edit them otherwise if they aren't edited on the fly like I'm thinking. This isn't why I'm here either though; I think this one I can figure out with some time.
4) I have no idea what kind of special anchor tag I need to put on this thing. Am I just linking people to the site in general? Providing an empty tag that can be filled in with something later? What is this anchor tag supposed to do? I've never used docusign before, and I imagine it wouldn't really be too difficult to figure out if it weren't for the fact that I've never used *any* web service before and I have no idea why you would want to do things X, Y, or Z. Docusign appears to have a ton of pages that don't really tell you anything helpful because they constitute a disjointed jumbled mess of random facts about their service that kind of rely on you already knowing several things about it. Also most of them have no technical information, but I did find this:
https://www.docusign.com/sites/default/files/Using%20Anchor%20Tags.pdf
This is great! Now if only I knew why on earth I would ever actually *want* to use any of these tags. Like; how is this going to be used?
I'm posting this in Engineering under "XML and Related Technologies" because although the above rant/list defines my present, immediate problem, I think my much larger problem which is the reason I don't understand any of this, is that I have no familiarity with web services, posting XML, how web services use the documents that are sent back and forth, or really any of this. If you're asking yourself "How did you get this far without knowing this?", it's a fair question that I ask myself every day. I was hired to do
Java Web Development straight out of college, my degree was in History, and my only formal training in coding beforehand was Java 1 in High school; a half-semester Database Programming class, AP Java senior year, I got a 3 on the AP
Test, and I took 1 more class in C++ in college. The guy who hired me was fully aware of that, but decided to hire me anyway, and it's working out great so far; I've been working at this place for about 6 months now, and I can basically do anything that needs done to our site as long as it's contained within our project, but when it comes to doing a handshake with a third party service and exchanging information with them, I have only a vague idea of how it works. If you want to see how clueless I was not too long ago just look at my posting history.
So I'll list what I think I know first just to make sure I'm not totally out in left field about how this works:
We send them an XML schema that's just a document that says "Hey, when we send you information it'll be formatted EXACTLY like this, and when you send it back it needs to be formatted EXACTLY like this." So they say "Ok" and set up a
servlet on a site where you can "post" data to an associated mapped URL, the same way you'd post data to a servlet mapped to a URL in your own web application. So like; I make WebServiceServlet.java and map it to MySite.com/webservice.
Then somehow, someone builds an XML object and sends it to that URL with a "post" request. I'm really fuzzy on the details of that part. You open a Connection to the URL using some special built-in Java class, then make an outputStream and write the XML to the connection, or something like that, and then there follows a weird chain of getting authetication keys back and sending them back until you can finally send the information you were trying to send, unless they have it set up so you send the credentials along with the data and a return address (also mapped to a servlet) and it either returns "I don't know you,
Fuck off", "I screwed up. So uh.. Do you want this error code?", or "Oh Hi! Here, have some data!"
I think I sort of get it, but on a scale of "What is an XML?" to "I know how to set up a webservice from scratch and use it", with "I know *how* it's done but I can't do it" in the middle, I think I'm almost to the middle, but not quite?
In that process though; where would an Anchor tag in a PDF even be relevant? The way I understand (or misunderstand) it, we don't use the anchor tag; we put it there, then send the PDF to someone, and whoever gets it uses it to interact with Docusign's webservice. I don't know how though, and until I get that I feel like I'm incredibly likely to put in all of the wrong tags in the wrong places. I could probably put tags on the PDF files and show them to my boss until I get it right, but right now I feel kind of like a legless shoe designer or a blind person directing a silent film.
So my question is: What misconceptions am I harbouring about the basic process you need to follow to make a request on a web service? Why would it ever be necessary to tag a document that you're sending to a third party in order to allow them to use *another* third party to do something else to the document? What is going on with that process that makes the anchor tag necessary? And finally, does anyone have any advice on how to get up to speed on this stuff quickly? Books I could buy; java packages I should look into, or web services that are free to use that I could make some practice programs for? I'm trying to make one that uses the Flickr api right now, but I'm basically stuck on "Ok, here's my authentication key, and here's what my XML should look like... How do I make it "go" to the place it needs to go to though?"