C# SDK
Rydym yn argymell codio'n uniongyrchol yn erbyn yr API, mae'r cyfeirlyfr technegol a'ch AI chi yn ei gwneud yn syml. Gellir cynhyrchu SDK C# gan ddefnyddio maniffesto OpenAPI3 ein API a'r generadur openapi. Fodd bynnag, os ydych eisiau SDK rydym yn argymell i chi ddefnyddio'r prosiect a gynhyrchir a ddarperir, gan ei fod yn cynnwys trwsio rhai materion fel meysydd na ellir eu bodloni (nullable fields).
Mae'r pecyn yn cynnwys ei ddogfennaeth ei hun (yn docs/), ond bydd yr enghreifftiau isod yn dangos i chi sut i ddechrau.
Cael Eich Allwedd API
-
Cofrestrwch am gyfrif prawf.
-
Ffurfweddwch ar gyfer API pan fyddwch yn cael hysbysiad, a anfonwch e-bost at y Gwasanaeth Cefnogi i gael Allwedd API. Mae angen i chi ddangos lefel o ddealltwriaeth am ddefnyddio API REST, cynnwys yn eich e-bost: enw a chyfeiriad eich cwmni, eich enw a'ch rôl, disgrifiwch eich achos defnydd, a rhoi crynodeb byr o'ch profiad rhaglennu/REST.
-
Unwaith y rhoddir, bydd eich allwedd API ar gael yn y cais gwe. Fe welwch eich bod yn y sandbox - ychwanegwch unrhyw e-byst lle byddwch yn anfon eich dogfennau prawf.
Mae eich allwedd api yn mynd yn y pennawd "Authorization", ac mae'n cymryd y ffurf: Apikey username:secret. Bydd eich enw defnyddiwr a'ch cyfrinair yn cael eu nodi'n glir yn y cais gwe.
Cael y SDK a Phrosiectau Enghraifft
Gyda'ch offer git o'ch dewis cloniwch y storfa SDK C#.
git clone https://github.com/legalesign/LegalesignCsharpSDK.git legalesignSDK
Ffurfweddu'r prosiect Enghraifft:
Agorwch LegalesignCsharpSDK.sln a adeiladwch y prosiect. Dylech weld tri phrosiect wedi'u cynnwys yn y datrysiad, byddwn yn canolbwyntio ar LegalesignTest a fydd yn eich helpu i ddechrau gwneud galwadau i'r API REST.
I arbed amser efallai yr hoffech ychwanegu eich enw defnyddiwr, cyfrinair, enw'r grŵp, e-bost targed, enw cyntaf a chyfenw fel y priodoleddau Text ar gyfer txtUsername, txtSecretKey ac ati yn Form1. Os nad ydych, bydd angen i chi eu darparu pan fyddwch yn rhedeg y prosiect Winform (sicrhewch fod hwn wedi'i farcio fel y prosiect cychwyn). Os byddwch yn codio nhw'n uniongyrchol cofiwch dynnu'r wybodaeth honno unwaith y byddwch wedi gorffen gyda'r prosiect.
Gadewch i ni edrych ar y bloc cod cyntaf yn Form1.cs:
private Configuration makeConfig() {
Configuration c = new Configuration();
c.AddApiKey("Authorization", $"ApiKey {txtUsername.Text}:{txtSecretKey.Text}");
return c;
}
Gallwch weld sut mae hyn yn defnyddio'r enw defnyddiwr a'r cyfrinair a ddarparwch a'u pasio i'r ffurfwedd ar gyfer pob galwad byddwn yn ei wneud yn ddiweddarach. Dyna sut mae galwadau API yn cael eu hawdurdoli.
Profi cais GET:
Gadewch i ni sicrhau y gallwch wneud cais GET syml, i wirio bod eich awdurdodiad wedi'i ffurfweddu'n iawn.
Mae'r cod canlynol yn rhedeg pan fyddwch yn pwyso'r botwm Get Groups. Cymerwch amser i sylwi ble mae'r wybodaeth Ffurfwedd yn cael ei basio i mewn gan ddefnyddio makeConfig(). Rhedegwch y prosiect, nodwch eich enw defnyddiwr a'ch allwedd yn y blychau os nad ydych wedi'u codio yn y priodoledd Text a chliciwch y botwm Get Groups.
private void btnCall_Click(object sender, EventArgs e)
{
GroupApi group = new GroupApi(makeConfig());
GroupListResponse groupList = group.GetGroups();
richTextBox1.Text = groupList.ToJson();
}
Os yw'n llwyddiannus, fe gewch restr JSON o'ch grwpiau.
Os nid, gwiriwch ddwywaith a oes gennych y gwerth Authorization yn gywir.
Mae'r cod hwn yn cael unrhyw ddogfennau sy'n aros i'w llofnodi, achos defnydd cyffredin. Prawfwch hyn drwy archwilio ac yna rhedeg y botwm Get Documents.
private void button2_Click(object sender, EventArgs e)
{
DocumentApi docs = new DocumentApi(makeConfig());
DocumentListResponse documentList = docs.GetDocuments();
richTextBox1.Text = documentList.ToJson();
}
Mae'r galwadau 'get_statuses()' a 'get_status()' yn ffyrdd cyflymach o chwilio am wybodaeth sylfaenol am ddogfennau.
Dylech fod yn dechrau deall sut mae'r SDK yn gweithio. Ewch yn ôl at y ffeil Readme pecyn, a gwelwch yr holl wrthrychau API i'w trio, a'u holl ddulliau.
Profi cais POST
Yna byddwn yn anfon rhywfaint o HTML custwm i'w llofnodi mewn un galwad API, ac wedyn byddwn yn uwchlwytho PDF a'i anfon.
Anfon dogfen HTML i'w llofnodi:
Dyma ychydig o HTML at ddibenion demo, yn cynnwys un elfen llofnod. Disodli'r gwerthoedd grŵp, enw ac e-bost.
private void btnPost_Click(object sender, EventArgs e)
{
DocumentApi docs = new DocumentApi(makeConfig());
List<DocumentSignerPost> signers = new List<DocumentSignerPost>();
signers.Add(new DocumentSignerPost(email: txtEmail.Text, firstname: txtFirstname.Text, lastname: txtLastname.Text));
//You must provide group id as lowercase
DocumentPost dp = new DocumentPost(
group: $"/api/v1/group/{txtGroupName.Text.ToLower()}/",
name: "dotnetdocument",
text: rtbBodyHTML.Text,
signers: signers,
doEmail: true,
footerHeight:30,
footer: "Legalesign ID: {{doc_id}}");
try
{
InlineResponse201 resp = docs.PostDocument(dp);
richTextBox1.Text = resp.ToJson();
}
catch (Exception ex) {
throw ex;
}
}
Sut rydym yn gwybod iddo fynd drwyddi? Mae OpenAPI yn taflu eithriad ar gyfer ymatebion nad ydynt yn 2XX. Byddwch am roi eich holl geisiadau mewn bloc try/catch.
Bob tro rydych yn POSTio, byddwch fel arfer eisiau ID yr wrthrych newydd. Mae yn y pennawd Location yr ymateb. Yn ein hachos nesaf, gwelwn sut i uwchlwytho PDF i'w anfon at llofnodwyr, a chael yr ID yn ôl ar gyfer y templed newydd hwnnw.
Uwchlwytho a anfon PDF
Byddwch yn debygol o ddefnyddio tagiau testun mewn eich PDFau, i ddiffinio ble fydd pobl yn llofnodi neu yn llenwi unrhyw ffurflenni. Mae defnyddio'r paramedr processTags=true yn gadael i'r system wybod i edrych drwy eich dogfen a gwneud meysydd ar gyfer gwybodaeth a llofnodion i'r derbynnydd eu llofnodi. Mae enghraifft sylfaenol o PDF gyda tagiau wedi'i chynnwys yn rhad ac am ddim yn wreiddiol y prosiect SDK.
Gadewch i ni uwchlwytho PDF gan ddefnyddio fersiwn 'with_http_info' o'r cais POST i gael y ID
private void btnUploadPdf_Click(object sender, EventArgs e)
{
DialogResult result = openFileDialog1.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
TemplatepdfApi pdf = new TemplatepdfApi(makeConfig());
// Get the file and convert the contents to a base64 byte array.
Byte[] bytes = File.ReadAllBytes(openFileDialog1.FileName);
String contents = Convert.ToBase64String(bytes);
Byte[] encodedBytes = Convert.FromBase64String(contents);
try
{
// Upload the pdf for our group to use with a title and a tag
ApiResponse <object> response = pdf.PostPdfTemplateWithHttpInfo(new TemplatePdfFieldPost(group: $"/api/v1/group/{txtGroupName.Text.ToLower()}/",
pdfFile: encodedBytes, processTags: true, title: "test tagged document"));
// Just to demonstrate how to read response headers we'll put the returned
// header in the output rich text box. The 'Location' header contains the new
// Template ID.
richTextBox1.Text = JsonConvert.SerializeObject(response.Headers);
// We'll save this so we can use it when calling Send with Template
txtPDFLocation.Text = response.Headers["Location"];
}
catch (Exception ex)
{
throw ex;
}
}
}
Gan ein bod wedi gosod process_tags i wir, mae pob tag wedi cael ei brosesu felly mae eich PDF yn barod i'w anfon. Fel o'r blaen, mae angen yr ID arnom ar gyfer y PDF i allu ei anfon. Yn ffodus cadwyd hwnnw yn y blwch testun txtPdfLocation.
Mae'r darn cod olaf o Send with Template yn dangos sut rydym yn defnyddio lleoliad PDF hwnnw i anfon dogfen sydd eisoes wedi'i llwytho i'w llofnodi.
private void btnSendTemplate_Click(object sender, EventArgs e)
{
DocumentApi docs = new DocumentApi(makeConfig());
List<DocumentSignerPost> signers = new List<DocumentSignerPost>();
signers.Add(new DocumentSignerPost(email: txtEmail.Text, firstname: txtFirstname.Text, lastname: txtLastname.Text));
//You must provide group id as lowercase
DocumentPost dp = new DocumentPost(
group: $"/api/v1/group/{txtGroupName.Text.ToLower()}/",
name: "dotnetdocument",
template: txtPDFLocation.Text,
signers: signers,
doEmail: true,
footerHeight: 30,
footer: "Legalesign ID: {{doc_id}}");
try
{
InlineResponse201 resp = docs.PostDocument(dp);
richTextBox1.Text = resp.ToJson();
}
catch (Exception ex)
{
throw ex;
}
}
Dechrau codio
Sicrhewch eich bod yn gwirio'r ddogfennaeth a gynhyrchir gan OpenAPI ar gyfer gwahanol fathau o alwadau a dewisiadau.
Mae rhai problemau cyffredin yn cynnwys:
Mae'n rhaid i enw'r grŵp gyd-fynd yn union â un sydd gennych eisoes yn eich sefydliad.
Bydd eich cais yn cael ei wrthod os yw'ch cymwysterau'n anghywir, wedi dod allan o gyfnod dilysrwydd neu wedi'u cloi.
Daw 401 yn ôl os ydych mewn sandbox ac yn ceisio anfon dogfen at rywun nad yw yn eich rhestr e-bost sandbox.
Codio hapus!