Apex само за хоствани приложения на force.com?

Разрешен ли е Apex само за „родни“ приложения, които се хостват на force.com?

Или Apex също е наличен за външни приложения, които да достигнат до „Отворени API“ като REST API и Bulk API?

Мисля, че част от моето объркване се крие в това как терминът „Rest API“ се използва в различни документи. В други части на света на софтуера REST обикновено означава HTTP базиран протокол за обмен на данни между различни домейни (и с определени формати и т.н.). Мисля обаче, че Rest API в salesforce може ПОНЯКОГА да се отнася до незадължителни средства за местни приложения за извличане на данни от salesforce от force.com. Вярно ли е?


person R Claven    schedule 30.05.2014    source източник


Отговори (1)


Не съм сигурен, че разбирам въпроса ви...

Apex може да се използва "вътрешно" в:

  • тригери на база данни,
  • classes
    • Visualforce controllers that follow MVC pattern,
    • логика, която анализира входящите имейли и например прави Case или Lead записи от тях,
    • асинхронни задачи, които могат да бъдат планирани да преизчисляват някои важни неща всяка вечер
    • и можете да имате полезни класове за повторно използване на код в тях

„Вътрешен вид“ би било използването на механизма „Изпълни анонимно“, който ви позволява да задействате еднократни кодови фрагменти срещу околната среда. Полезно за създаване на прототипи на нови класове, корекции на данни и т.н. Можете да го направите например в Eclipse IDE или конзолата за разработчици (горния десен ъгъл до вашето име).


И не на последно място - "външно" използване.

Apex кодът може да бъде изложен като уеб услуга и извикан от PHP, .NET, Java, дори JavaScript приложения. Това е добър избор, когато:

  • искате да използвате повторно същата част от логиката, например на вашата собствена страница на Visualforce, както и в някое мобилно приложение, което ще предава няколко низа наоколо или прост JSON обект
  • бие необходимостта от повторно внедряване на логиката във всяко ново приложение и поддържане на това след това
  • представете си вмъкване на акаунт и контакт наведнъж - мобилното ви устройство ще трябва да приложи контрол на транзакциите и да изтрие акаунта, ако контактът не успее да се зареди. разхвърлян. И ще пропилее повече извиквания на API (вмъкване на acc, вмъкване на con, ooops, изтриване на acc). С метод, изложен като уеб услуга, бихте могли да приемете и двата параметъра във вашия Apex код, да направите своята магия и добре, ако се провали - всичко е в една транзакция, така че SF ще го върне обратно вместо вас.

Има 2 основни метода:

  • SOAP API използва предимно глобални методи, маркирани с ключова дума webservice. Най-лесният начин други приложения да започнат да ги извикват е да извлекат от SF и да „консумират“ така наречения „корпоративен WSDL“ файл. Това е огромен XML файл, който може да бъде анализиран във вашето .NET приложение, за да генерира код, който ще ви помогне да пишете код, с който сте запознати. Тези генерирани класове ще конструират XML съобщението вместо вас, ще го изпратят, ще обработят отговора (изпратете вашите собствени изключения, ако SF е изпратил съобщение за грешка) и т.н.

Много прост пример:

global class MyWebService {
    webService static Id makeContact(String lastName, Account a) {
        Contact c = new Contact(lastName = 'Weissman', AccountId = a.Id);
        insert c;
        return c.id;
    }
}
  • REST API ви позволява да правите подобни неща, но трябва да използвате правилни HTTP глаголи ("PUT" е най-подходящ за вмъквания, "PATCH" за актуализации", "DELETE" и т.н.).

Можете да прочетете повече за тях в ръководството за REST API: http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm#CSHID=apex_rest_methods.htm|StartTopic=Content%2Fapex_rest_methods.htm|SkinName=webhelp

person eyescream    schedule 31.05.2014
comment
Благодаря ви много за отделеното време. Когато зададох този въпрос, все още бях потънал в маркетингови материали, но това помогна! - person R Claven; 23.07.2014
comment
да трябваше отдавна :( - person R Claven; 23.07.2014