REST เจ…เจคเฉ‡ เจตเจฐเจ•เจซเจฒเฉ‹ เจ‡เฉฐเจœเจฃ (เจ•เฉ‹เจˆ เจœเจพเจตเจพ เจจเจนเฉ€เจ‚) 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจ†เจธเจพเจจ เจ†เจฐเจ•เฉˆเจธเจŸเฉเจฐเฉ‡เจธเจผเจจ เจฒเจˆ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจนเฉ‡ เจนเจฌเจฐ! เจฎเฉˆเจ‚ เจฒเฉ‡เจ– เจฆเจพ เจ…เจจเฉเจตเจพเจฆ เจคเฉเจนเจพเจกเฉ‡ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจชเฉ‡เจธเจผ เจ•เจฐเจฆเจพ เจนเจพเจ‚ "เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจจเฉ‚เฉฐ เจตเจฐเจคเฉ‹เจ‚ เจตเจฟเฉฑเจš เจ†เจธเจพเจจ REST-เจ…เจงเจพเจฐเจฟเจค เจ†เจฐเจ•เฉˆเจธเจŸเจฐเฉ‡เจธเจผเจจ เจ…เจคเฉ‡ เจตเจฐเจ•เจซเจฒเฉ‹ เจ‡เฉฐเจœเจฃ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเฉ‹ (เจœเจพเจตเจพ เจจเฉ‚เฉฐ เจ›เฉ‚เจนเจฃ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚)" Bernd Rรผcker เจฆเฉเจ†เจฐเจพ.

07.07.2020/XNUMX/XNUMX, เจ…เจจเฉเจตเจพเจฆ เจฒเฉ‡เจ– เจฌเจฐเฉˆเจ‚เจก เจฐเจ•เจฐ

REST เจ…เจคเฉ‡ เจตเจฐเจ•เจซเจฒเฉ‹ เจ‡เฉฐเจœเจฃ (เจ•เฉ‹เจˆ เจœเจพเจตเจพ เจจเจนเฉ€เจ‚) 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจ†เจธเจพเจจ เจ†เจฐเจ•เฉˆเจธเจŸเฉเจฐเฉ‡เจธเจผเจจ เจฒเจˆ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจฎเฉˆเจ‚ เจ…เจ•เจธเจฐ เจ—เฉˆเจฐ-เจœเจพเจตเจพ เจฒเฉ‹เจ•เจพเจ‚ เจจเจพเจฒ เจฎเจพเจˆเจ•เฉเจฐเฉ‹เจธเจฐเจตเจฟเจธ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฌเจพเจฐเฉ‡ เจšเจฐเจšเจพ เจ•เจฐเจฆเจพ เจนเจพเจ‚: C# เจกเจฟเจตเฉˆเจฒเจชเจฐ, Node.JS/JavaScript เจกเจฟเจตเฉˆเจฒเจชเจฐ, เจœเจพเจ‚ Golang aficionados. เจ‰เจนเจจเจพเจ‚ เจธเจพเจฐเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจ‡เจธ เจคเฉฑเจฅ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจ•เจฐเจจเจพ เจชเฉˆ เจฐเจฟเจนเจพ เจนเฉˆ เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฎเจพเจˆเจ•เฉเจฐเฉ‹เจธเจฐเจตเจฟเจธ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ†เจฐเจ•เฉˆเจธเจŸเฉเจฐเฉ‡เจธเจผเจจ เจตเจฟเจงเฉ€ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจœเจพเจ‚ เจตเจฐเจ•เจซเจฒเฉ‹ เจจเฉ‚เฉฐ เจธเฉเจšเจพเจฐเฉ‚ เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ เจ†เจฐเจกเจฐ เจ•เจฐเจจ, เจธเจฎเจพเจ‚ เจธเจฎเจพเจชเจคเฉ€, เจธเจพเจ—เจพ เจ…เจคเฉ‡ เจฎเฉเจ†เจตเจœเจผเฉ‡ เจฆเฉ‡ เจฒเฉˆเจฃ-เจฆเฉ‡เจฃ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจธเจพเจงเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

BPM เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจคเฉ‹เจ‚ เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจ…เจœเจฟเจนเฉ‡ เจ•เฉฐเจฎเจพเจ‚ เจฒเจˆ เจฌเจนเฉเจค เจตเจงเฉ€เจ†เฅค เจกเจฟเจตเฉˆเจฒเจชเจฐ เจฆเฉ‹เจธเจคเฉ€ เจ‰เจคเจชเจพเจฆ เจฆเฉ€เจ†เจ‚ เจฎเฉเฉฑเจ– เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจนเฉˆเฅค เจชเจฐ เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจฆเฉ‡ เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจชเฉเจฐเจญเจพเจต เจฎเจฟเจฒ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฆเฉ€ "เจฆเฉ‹เจธเจคเจพเจจเจพ" เจฎเฉเฉฑเจ– เจคเฉŒเจฐ 'เจคเฉ‡ เจœเจพเจตเจพ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจฒเจˆ เจนเฉˆเฅค เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจคเฉเจนเจพเจกเฉ‡ เจ†เจชเจฃเฉ‡ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจ…เจคเฉ‡ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจ เจฒเจˆ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจตเจฟเจ•เจฒเจช เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจ‡เจน เจธเจญ เจœเจพเจตเจพ เจตเจฟเฉฑเจš เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ•เฉ€ เจ‡เจน เจธเฉฑเจšเจฎเฉเฉฑเจš เจนเฉˆ?

เจจเจนเฉ€เจ‚! เจตเจพเจธเจคเจต เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจฌเจฟเจจเจพเจ‚ เจœเจพเจตเจพ เจ—เจฟเจ†เจจ เจฆเฉ‡ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจจเฉ‚เฉฐ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจšเจฒเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ†เจชเจฃเฉ€ เจชเจธเฉฐเจฆ เจฆเฉ€ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจ•เฉ‹เจก เจฒเจˆ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจธเฉˆเจŸ เจ…เจช เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเจš, เจ…เจธเฉ€เจ‚ เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡:

  • เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ;
  • REST API
  • Java เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ เจนเฉ‹เจฐ เจญเจพเจธเจผเจพเจตเจพเจ‚ เจฒเจˆ เจฎเฉŒเจœเฉ‚เจฆเจพ เจ•เจฒเจพเจ‡เฉฐเจŸ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฌเจพเจฐเฉ‡ เจธเจฒเจพเจน;
  • C# เจ…เจคเฉ‡ Node.JS เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ‰เจฆเจพเจนเจฐเจจ;
  • เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจธเจฐเจตเจฐ (เจกเฉŒเจ•เจฐ เจœเจพเจ‚ เจŸเฉ‹เจฎเจ•เฉˆเจŸ) เจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฆเฉ‡ เจคเจฐเฉ€เจ•เฉ‡เฅค

เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ

เจ•เฉˆเจฎเฉเฉฐเจกเจพ Java เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• Java เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ (JVM) เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค Camunda เจ‡เฉฑเจ• REST API เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ€ เจชเจธเฉฐเจฆ เจฆเฉ€ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฃ เจ…เจคเฉ‡ Camunda เจจเจพเจฒ REST เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ:

REST เจ…เจคเฉ‡ เจตเจฐเจ•เจซเจฒเฉ‹ เจ‡เฉฐเจœเจฃ (เจ•เฉ‹เจˆ เจœเจพเจตเจพ เจจเจนเฉ€เจ‚) 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจ†เจธเจพเจจ เจ†เจฐเจ•เฉˆเจธเจŸเฉเจฐเฉ‡เจธเจผเจจ เจฒเจˆ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจตเจฟเฉฑเจš เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ BPMN เจตเจฟเฉฑเจš เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจœเฉ‹ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• XML เจซเจพเจˆเจฒ เจนเฉˆเฅค เจ‡เจธ เจจเจพเจฒ เจฎเจพเจกเจฒเจฟเฉฐเจ— เจ•เฉ€เจคเฉ€ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฎเจพเจกเจฒเจฐ.

เจชเฉ‚เจฐเจต-เจฌเจฟเจฒเจŸ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจฆเฉเจ†เจฐเจพ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจšเจฒเจพ เจฐเจฟเจนเจพ เจนเฉˆ

เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเจพ เจธเจญ เจคเฉ‹เจ‚ เจ†เจธเจพเจจ เจคเจฐเฉ€เจ•เจพ เจนเฉˆ เจกเฉŒเจ•เจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพเฅค เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เจฐเจจ เจฆเฉ‡ เจตเจฟเจ•เจฒเจชเจฟเจ• เจคเจฐเฉ€เจ•เฉ‡ เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจฆเฉฑเจธเฉ‡ เจ—เจ เจนเจจเฅค

REST เจ…เจคเฉ‡ เจตเจฐเจ•เจซเจฒเฉ‹ เจ‡เฉฐเจœเจฃ (เจ•เฉ‹เจˆ เจœเจพเจตเจพ เจจเจนเฉ€เจ‚) 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจ†เจธเจพเจจ เจ†เจฐเจ•เฉˆเจธเจŸเฉเจฐเฉ‡เจธเจผเจจ เจฒเจˆ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจฌเจธ เจšเจฒเจพเจ“:

  docker run -d -p 8080:8080 camunda/camunda-bpm-platform:latest

เจคเฉเจนเจพเจจเฉ‚เฉฐ Linux, JVM เจœเจพเจ‚ Tomcats เจฌเจพเจฐเฉ‡ เจšเจฟเฉฐเจคเจพ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจˆ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒเจพเจ‚ เจ…เจคเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเจพเจฒ เจœเฉเฉœเจจ เจฒเจˆ เจจเจฟเจฐเจฆเฉ‡เจธเจผ) 'เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจนเจจ GitHub.

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจเจ‚เจŸเจฐเจชเฉเจฐเจพเจˆเจœเจผ เจเจกเฉ€เจธเจผเจจ เจšเจฒเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ.

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจกเฉŒเจ•เจฐ เจจเจพเจฒ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจšเจฒเจพเจ‰เจฃ เจฆเจพ เจ‡เฉฑเจ• เจจเจจเฉเจ•เจธเจพเจจ เจนเฉˆ: เจคเฉเจธเฉ€เจ‚ เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจฆเฉ‡ เจ‡เฉฑเจ• เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ‡ เจจเจพเจฒ เจ–เจคเจฎ เจนเฉ‹เจตเฉ‹เจ—เฉ‡ เจœเจฟเจธ เจตเจฟเฉฑเจš เจนเจฎเฉ‡เจธเจผเจพเจ‚ เจจเจตเฉ€เจจเจคเจฎ เจซเจฟเจ•เจธ เจธเจผเจพเจฎเจฒ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจ‡เจธเจฆเฉ‡ เจ†เจฒเฉ‡ เจฆเฉเจ†เจฒเฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจฆเฉ€ เจฒเฉ‹เฉœเฉ€เจฆเฉ€ เจตเฉฐเจก เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ เจ†เจชเจฃเฉ‡ เจ†เจช เจ‡เฉฑเจ• เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เจธ เจ‰เจฆเจพเจนเจฐเจฃ เจตเจฟเฉฑเจš เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ, เจœเจพเจ‚ เจนเฉ‡เจ เจพเจ‚ เจฆเฉฑเจธเฉ‡ เจ—เจ เจนเฉฑเจฒเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹เฅค

เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฎเจพเจกเจฒ เจคเฉˆเจจเจพเจคเฉ€

เจ†เจ‰ เจ•เจฒเจพเจธเจฟเจ• เจŸเฉเจฐเจฟเจช เจฌเฉเจ•เจฟเฉฐเจ— เจฒเจˆ เจธเจพเจ—เจพ เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ เจตเฉ‡เจ–เฉ€เจ เจœเจฟเฉฑเจฅเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ•เจคเจพเจฐ เจตเจฟเฉฑเจš เจคเจฟเฉฐเจจ เจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจšเจพเจฒเฉ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ…เจธเจซเจฒ เจนเฉ‹เจฃ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจธเจซเจฒเจคเจพเจชเฉ‚เจฐเจตเจ• เจชเฉ‚เจฐเฉ€เจ†เจ‚ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจฒเจˆ เจธเจผเจพเจจเจฆเจพเจฐ เจฎเฉเจ†เจตเจœเจผเจพ เจฆเฉ‡เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹เฅค BPMN เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจจเฉเจฎเจพเจ‡เฉฐเจฆเจ—เฉ€, เจ‡เจน เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจธเจฆเจพ เจนเฉˆ:

REST เจ…เจคเฉ‡ เจตเจฐเจ•เจซเจฒเฉ‹ เจ‡เฉฐเจœเจฃ (เจ•เฉ‹เจˆ เจœเจพเจตเจพ เจจเจนเฉ€เจ‚) 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจ†เจธเจพเจจ เจ†เจฐเจ•เฉˆเจธเจŸเฉเจฐเฉ‡เจธเจผเจจ เจฒเจˆ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจนเฉเจฃ เจคเฉเจธเฉ€เจ‚ เจตเจฐเจค เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฎเจพเจกเจฒ เจคเฉˆเจจเจพเจคเฉ€ เจฒเจˆ REST API. เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจจเฉ‚เฉฐ trip.bpmn เจตเจœเฉ‹เจ‚ เจธเฉ‡เจต เจ•เจฐเจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจกเฉŒเจ•เจฐ เจฐเจพเจนเฉ€เจ‚ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจšเจฒเจพเจ“ เจคเจพเจ‚ เจœเฉ‹ เจ‡เจน เจฒเฉ‹เจ•เจฒเจนเฉ‹เจธเจŸ:8080 'เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจนเฉ‹เจตเฉ‡:

  curl -w "n" 
-H "Accept: application/json" 
-F "deployment-name=trip" 
-F "enable-duplicate-filtering=true" 
-F "deploy-changed-only=true" 
-F "[email protected]" 
http://localhost:8080/engine-rest/deployment/creat

เจนเฉเจฃ เจคเฉเจธเฉ€เจ‚ เจšเจฒเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจจเจตเฉ‡เจ‚ เจตเจฐเจ•เจซเจฒเฉ‹ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ REST API เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ…เจคเฉ‡ เจ‰เจธ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจชเจพเจธ เจ•เจฐเฉ‹ เจœเจฟเจธ เจจเฉ‚เฉฐ เจคเฉเจธเฉ€เจ‚ เจตเจฐเจ•เจซเจฒเฉ‹ เจ‰เจฆเจพเจนเจฐเจจ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจตเจœเฉ‹เจ‚ เจฆเฉ‡เจ–เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹:

  curl 
-H "Content-Type: application/json" 
-X POST 
-d '{"variables":{"someData" : {"value" : "someValue", "type": "String"}},"businessKey" : "12345"}}' 
http://localhost:8080/engine-rest/<!-- -->process-definition/key/<!-- -->FlowingTripBookingSaga<!-- -->/start

เจ…เจ—เจฒเจพ เจฆเจฟเจฒเจšเจธเจช เจธเจตเจพเจฒ เจนเฉˆ: เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจ•เจพเจฐ เจฌเฉเฉฑเจ• เจ•เจฐเจจ เจตเจฐเจ—เฉ€เจ†เจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจพเจฒ เจ•เจฐเจฆเจพ เจนเฉˆ? เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจธเจฟเจฐเจซเจผ เจ•เฉเจ เจฌเจฟเจฒเจŸ-เจ‡เจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจคเฉเจฐเฉฐเจค (เจชเฉเจธเจผ-เจธเจฟเจงเจพเจ‚เจค) เจ•เจพเจฒ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจจเฉˆเจ•เจŸเจฐ, เจชเจฐ เจ•เฉฐเจฎ เจฆเฉ€เจ†เจ‚ เจšเฉ€เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ•เจฟเจธเจฎ เจฆเฉ‡ เจฌเจฟเจฒเจŸ-เจ‡เจจ เจ†เจฐเจกเจฐ เจตเจฟเฉฑเจš เจตเฉ€ เจชเจพเจ“เฅค เจซเจฟเจฐ เจ•เจฐเจฎเจšเจพเจฐเฉ€ REST เจฐเจพเจนเฉ€เจ‚ เจ•เฉฐเจฎ เจฆเฉ€เจ†เจ‚ เจšเฉ€เจœเจผเจพเจ‚ เจฒเจฟเจ† เจธเจ•เจฆเจพ เจนเฉˆ, เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐเจจ เจฒเจˆ เจ•เจนเจฟ เจธเจ•เจฆเจพ เจนเฉˆ (เจ–เจฟเฉฑเจšเฉ‹-เจธเจฟเจงเจพเจ‚เจค)เฅค

REST เจ…เจคเฉ‡ เจตเจฐเจ•เจซเจฒเฉ‹ เจ‡เฉฐเจœเจฃ (เจ•เฉ‹เจˆ เจœเจพเจตเจพ เจจเจนเฉ€เจ‚) 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจ†เจธเจพเจจ เจ†เจฐเจ•เฉˆเจธเจŸเฉเจฐเฉ‡เจธเจผเจจ เจฒเจˆ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจ‡เจธ เจฒเจˆ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ fetchAndLock (เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฆเฉ‚เจœเฉ‡ เจ•เจฐเจฎเจšเจพเจฐเฉ€ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจธเจ•เฉ‡เจฒ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ•เฉ‹ เจธเจฎเฉ‡เจ‚ เจ•เฉฐเจฎ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ):

  curl 
-H "Content-Type: application/json" 
-X POST 
-d <!-- -->'{"workerId":"worker123","maxTasks":1,"usePriority":true,"topics":[{"topicName": "reserve-car"}, "lockDuration": 10000, "variables": ["someData"]}]}'<!-- --> 
http://localhost:8080/engine-rest/external-task/fetchAndLock

เจซเจฟเจฐ เจ•เฉˆเจฎเฉเฉฐเจกเฉ‡ เจจเฉ‚เฉฐ เจฆเฉฑเจธเฉ‹ เจตเจฐเจ•เจฐ เจจเฉ‡ เจ•เฉฐเจฎ เจชเฉ‚เจฐเจพ เจ•เฉ€เจคเจพ (เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเฉ€ เจฌเฉ‡เจจเจคเฉ€ เจตเจฟเฉฑเจš เจชเฉเจฐเจพเจชเจค เจนเฉ‹เจˆ เจฌเจพเจนเจฐเฉ€ เจŸเจพเจธเจ• เจ†เจˆเจกเฉ€ เจฆเจฐเจœ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ):

  curl 
-H "Content-Type: application/json" 
-X POST 
-d <!-- -->'{"workerId":"worker123", "variables": {}}'<!-- --> 
http://localhost:8080/engine-rest/<!-- -->external-task/EXTERNAL_TASK_ID/complete

เจ‡เจน เจนเฉ€ เจนเฉˆ - เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เจœเฉ‡ เจตเฉ€ เจ•เจฟเจธเฉ‡ เจœเจพเจตเจพ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ เฉ€เจ• เจนเฉˆ? เจ…เจคเฉ‡ เจ‡เจน เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฒเจˆ เจ•เจพเจซเจผเฉ€ เจนเฉˆ!

เจ•เจฒเจพเจ‡เฉฐเจŸ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚

เจ•เจฟเจธเฉ‡ เจตเฉ€ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš REST API เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจจเจพ เจ†เจธเจพเจจ เจนเฉˆเฅค JavaScript เจตเจฟเฉฑเจš, เจ‡เจน JQuery เจ…เจคเฉ‡ C# เจตเจฟเฉฑเจš, System.Net.Http เจ…เจคเฉ‡ Newtonsoft.Json เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจชเจฐ เจ‡เจธ เจตเจฟเฉฑเจš เจธเจฎเจพเจ‚ เจฒเฉฑเจ—เฉ‡เจ—เจพเฅค เจ‡เจธ เจฒเจˆ เจคเฉเจธเฉ€เจ‚ เจ•เฉเจ เจ•เจฒเจพเจ‡เฉฐเจŸ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹.

เจ‡เจธ เจธเจฎเฉ‡เจ‚, เจ•เจˆ เจคเจฟเจ†เจฐ-เจ•เฉ€เจคเฉ€ เจ•เจฒเจพเจ‡เฉฐเจŸ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจ‰เจชเจฒเจฌเจง เจนเจจ:

  • เจœเจพเจตเจพ เจธเจ•เฉเจฐเจฟเจชเจŸ: เจฒเจฟเฉฐเจ•. เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฆเฉเจ†เจฐเจพ เจธเจฎเจฐเจฅเจค;
  • เจœเจพเจตเจพ: เจฒเจฟเฉฐเจ•. เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฆเฉเจ†เจฐเจพ เจธเจฎเจฐเจฅเจค;
  • เจธเฉ€ #:เจฒเจฟเฉฐเจ• ะธ เจฒเจฟเฉฐเจ•. เจ‡เจน เจฆเฉ‹เจตเฉ‡เจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ‡เฉฑเจ• เจตเจฟเจšเจ•เจพเจฐเจฒเฉ€ เจ…เจตเจธเจฅเจพ เจตเจฟเฉฑเจš เจนเจจ เจ…เจคเฉ‡ เจ…เจฎเจฒเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเฉเจธเจค เจนเจจ, เจชเจฐ เจ‡เฉฑเจ• เจตเจงเฉ€เจ† เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจฌเจฟเฉฐเจฆเฉ‚ เจตเจœเฉ‹เจ‚ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ;
  • PHP: เจฒเจฟเฉฐเจ• - เจฌเจนเฉเจค เจธเฉฐเจชเฉ‚เจฐเจจ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจจเจตเฉ€เจจเจคเจฎ API เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจธเจผเจพเจฎเจฒ เจจเจนเฉ€เจ‚ เจนเจจ, เจชเจฐ เจฎเฉˆเจ‚ เจ‰เจนเจจเจพเจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจœเจพเจฃเจฆเจพ เจนเจพเจ‚ เจœเฉ‹ เจ‡เจธเจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจ.

JavaScript เจ…เจคเฉ‡ Java เจฆเฉ‡ เจ…เจชเจตเจพเจฆ เจฆเฉ‡ เจจเจพเจฒ, เจ•เจฒเจพเจ‡เฉฐเจŸ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจ–เฉเจฆ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจ‰เจคเจชเจพเจฆ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจจเจนเฉ€เจ‚ เจนเจจเฅค เจ‰เจนเจจเจพเจ‚ เจคเฉ‹เจ‚ เจ‰เจฎเฉ€เจฆ เจจเจพ เจ•เจฐเฉ‹ เจ•เจฟ เจ‰เจน เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฆเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ REST API เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจจเจ—เฉ‡เฅค เจธเจฟเจฐเจซเจผ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เฉฑเจ• เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจชเฉเจฐเจฆเจพเจจ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ€ เจนเฉˆ เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจ‡เจน เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ‰เฉฑเจฅเฉ‡ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจนเจฎเฉ‡เจธเจผเจพ Camunda เจฆเฉ‡ REST API เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเฉ‹เฅค เจธเฉฐเจฆเจฐเจญ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจฌเจฟเฉฐเจฆเฉ‚ เจ…เจคเฉ‡ เจจเจฎเฉ‚เจจเฉ‡ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฆเฉ‡ เจนเจจเฅค

C# เจ‰เจฆเจพเจนเจฐเจจ

เจ‰เจชเจฐเฉ‹เจ•เจค เจ•เจฒเจพเจ‡เฉฐเจŸ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจ…เจธเฉ€เจ‚ เจฌเจธ เจฒเจฟเจ– เจธเจ•เจฆเฉ‡ เจนเจพเจ‚:

  var camunda = new CamundaEngineClient("http://localhost:8080/engine-rest/engine/default/", null, null);
  // Deploy the BPMN XML file from the resources
  camunda.RepositoryService.Deploy("trip-booking", new List<object> {
        FileParameter.FromManifestResource(Assembly.GetExecutingAssembly(), "FlowingTripBookingSaga.Models.FlowingTripBookingSaga.bpmn")
     });
  
  // Register workers
  registerWorker("reserve-car", externalTask => {
    // here you can do the real thing! Like a sysout :-)
    Console.WriteLine("Reserving car now...");
    camunda.ExternalTaskService.Complete(workerId, externalTask.Id);
  });
  registerWorker("cancel-car", externalTask => {
    Console.WriteLine("Cancelling car now...");
    camunda.ExternalTaskService.Complete(workerId, externalTask.Id);
  });
  registerWorker("book-hotel", externalTask => {
    Console.WriteLine("Reserving hotel now...");
    camunda.ExternalTaskService.Complete(workerId, externalTask.Id);
  });
  // Register more workers...
  
  StartPolling();
  
  string processInstanceId = camunda.BpmnWorkflowService.StartProcessInstance("FlowingTripBookingSaga", new Dictionary<string, object>()
    {
      {"someBookingData", "..." }
    });

เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเจพ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจ”เจจเจฒเจพเจˆเจจ เจฒเฉฑเจญเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ: เจฒเจฟเฉฐเจ•. เจ‡เจ• เจนเฉ‹เจฐ เจ‰เจฆเจพเจนเจฐเจฃ 'เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจนเฉˆ เจฒเจฟเฉฐเจ•.

Node.js เจฆเฉ‡ เจจเจพเจฒ เจ‰เจฆเจพเจนเจฐเจจ

  var Workers = require('camunda-worker-node');
  var workers = Workers('http://localhost:8080/engine-rest', {
    workerId: 'some-worker-id'
  });
  
  workers.registerWorker('reserve-car', [ 'someData' ], function(context, callback) {
    var someNewData = context.variables.someData + " - added something";
    callback(null, {
      variables: {
        someNewData: someNewData
      }
    });
  });
  
  workers.shutdown();

เจตเจงเฉ‡เจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจตเฉˆเจฌเจธเจพเจˆเจŸ เจคเฉ‡ เจชเจพเจˆ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆ Github.com

เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฒเจพเจ‚เจš เจ•เจฐเจจ เจฆเฉ‡ เจตเจฟเจ•เจฒเจชเจฟเจ• เจคเจฐเฉ€เจ•เฉ‡

"เจ•เจฎเฉเฉฐเจกเจพ เจธเจŸเฉˆเจ‚เจกเจ…เจฒเฉ‹เจจ เจตเจพเจฐ" เจฆเฉ‡ เจจเจพเจฒ เจ•เจธเจŸเจฎ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ

เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจฃเฉ‡ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจฆเฉ‡ เจตเจฟเจ•เจฒเจช เจตเจœเฉ‹เจ‚, เจคเฉเจธเฉ€เจ‚ เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจคเจฟเจ†เจฐ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ (เจ‰เจฆเจพเจนเจฐเจฃ เจตเจœเฉ‹เจ‚, เจ…เจงเจฟเจ•เจพเจฐเจค เจกเฉŒเจ•เจฐ เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡) เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เจธ เจตเจฟเฉฑเจš เจ…เจ–เฉŒเจคเฉ€ WAR เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจตเจœเฉ‹เจ‚ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

REST เจ…เจคเฉ‡ เจตเจฐเจ•เจซเจฒเฉ‹ เจ‡เฉฐเจœเจฃ (เจ•เฉ‹เจˆ เจœเจพเจตเจพ เจจเจนเฉ€เจ‚) 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจ†เจธเจพเจจ เจ†เจฐเจ•เฉˆเจธเจŸเฉเจฐเฉ‡เจธเจผเจจ เจฒเจˆ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจœเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจตเจพเจงเฉ‚ เจฒเฉ‹เฉœเจพเจ‚ เจนเจจ เจ…เจคเฉ‡ เจœเจพเจตเจพ เจฌเจฟเจฒเจก เจตเจพเจคเจพเจตเจฐเจจ เจธเฉˆเจŸ เจ…เจช เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจธเจŸเฉˆเจ‚เจกเจ…เจฒเฉ‹เจจ เจตเจพเจฐ เจตเฉ€ เจธเฉˆเจŸ เจ…เจช เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เจนเจจเจพเจ‚ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจตเจพเจ‚เจ— เจ‡เฉฑเจ• เจฎเจพเจตเฉ‡เจจ เจฌเจฟเจฒเจก เจธเฉˆเจŸ เจ…เจช เจ•เจฐเฉ‹: เจฌเจฟเจฒเจก เจœเฉฐเจ— เจธเฉฐเจฐเจšเจจเจพ เจฆเฉ‡ เจจเจพเจฒ Maven เจœเจพเจ‚ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจ“เจตเจฐเจฒเฉ‡เจ… เจจเจพเจฒ เจฎเจพเจตเฉ‡เจจ.

เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจฆเฉ€ เจตเฉฐเจก เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเฉ€ เจœเจพ เจฐเจนเฉ€ เจนเฉˆ

เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจตเจฟเจ•เจฒเจช เจธเจฟเจฐเจซเจผ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจกเจฟเจธเจŸเฉเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจเจพ, เจ‡เจธเจจเฉ‚เฉฐ เจ…เจจเจœเจผเจฟเจช เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃเจพ เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ เจธเจฟเจฐเจซเจผ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ 'เจคเฉ‡ Java Runtime Environment (JRE) เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ‡เจน เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจ‡เฉฑเจฅเฉ‹เจ‚ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเฉ‹.

REST เจ…เจคเฉ‡ เจตเจฐเจ•เจซเจฒเฉ‹ เจ‡เฉฐเจœเจฃ (เจ•เฉ‹เจˆ เจœเจพเจตเจพ เจจเจนเฉ€เจ‚) 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจ†เจธเจพเจจ เจ†เจฐเจ•เฉˆเจธเจŸเฉเจฐเฉ‡เจธเจผเจจ เจฒเจˆ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจœเจพเจ‚ เจนเฉ‹เจฐ เจ•เฉเจ เจ•เจฐเจจ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจฆเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจตเจฟเฉฑเจš เจฆเฉฑเจธเจฟเจ† เจ—เจฟเจ† เจนเฉˆ. เจฎเฉˆเจ‚ เจœเจพเจฃเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจฒเฉฑเจ— เจธเจ•เจฆเจพ เจนเฉˆ, เจชเจฐ เจ‡เจน เจ…เจธเจฒ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจงเจพเจฐเจจ เจนเฉˆ. เจ…เจคเฉ‡ เจ—เฉ‚เจ—เจฒ เจนเจฐ เจšเฉ€เจœเจผ เจฆเฉ‡ เจœเจตเจพเจฌ เจœเจพเจฃเจฆเจพ เจนเฉˆ เจœเฉ‹ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจตเจฟเฉฑเจš เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจšเจฒเจพ เจฐเจฟเจนเจพ เจนเฉˆ

เจ†เจ–เจฐเฉ€ เจตเจฟเจ•เจฒเจช เจนเฉˆ เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพ, เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจตเฉ‡เจฐเจตเฉ‡ เจฆเฉ‡ เจฌเจพเจ…เจฆ. เจ‡เจน เจคเฉเจนเจพเจจเฉ‚เฉฐ เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจฆเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเจพ เจตเจฟเจ•เจฒเจช เจฆเฉ‡เจตเฉ‡เจ—เจพ, เจœเจพเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจธเฉ‡เจตเจพ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹, เจ‰เจฆเจพเจนเจฐเจฃ เจฒเจˆเฅค

เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจจเฉ‚เฉฐ เจ‰เจคเจชเจพเจฆเจจ เจตเจฟเฉฑเจš เจฒเจพเจ‚เจš เจ•เจฐเจจเจพ

เจ‡เจธ เจจเฉ‚เฉฐ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ•เฉเจ เจ…เฉฐเจคเจฎ เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจฆเฉ€ เจฒเฉ‹เฉœ เจชเจตเฉ‡เจ—เฉ€เฅค เจ•เฉˆเจฎเฉเฉฐเจกเจพ เจตเจฟเฉฑเจš เจฆเจฟเจธเจผเจพ-เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจนเจจ เจœเฉ‹ เจ‡เจธเจฆเจพ เจฌเจนเฉเจค เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจตเจฐเจฃเจจ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจชเจฐ เจฎเฉˆเจ‚ เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจœเจพเจตเจพเจ‚เจ—เจพ - เจฎเฉˆเจ‚ เจธเจฟเจฐเจซ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจฆเจพ เจจเจพเจฎ เจฆเฉ‡เจตเจพเจ‚เจ—เจพ: เจกเจฟเจธเจŸเฉเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจ เจฆเจพ REST API เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจฒเจˆ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ เจšเจพเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจธเฉฐเจ–เฉ‡เจช

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจคเฉเจนเจพเจกเฉ‡ เจฆเฉเจ†เจฐเจพ เจตเจฐเจคเฉ€ เจœเจพ เจฐเจนเฉ€ เจญเจพเจธเจผเจพ เจฆเฉ€ เจชเจฐเจตเจพเจน เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚, Camunda เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ•เจฐเจจเจพ เจฌเจนเฉเจค เจ†เจธเจพเจจ เจนเฉˆเฅค เจฎเฉเฉฑเจ– เจจเฉเจ•เจคเจพ เจ‡เจน เจนเฉˆ เจ•เจฟ เจธเจพเจฐเฉ€ เจชเจฐเจธเจชเจฐ เจ•เจฟเจฐเจฟเจ† REST API เจฆเฉเจ†เจฐเจพ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจตเฉ€ เจ•เจพเจซเจผเฉ€ เจ†เจธเจพเจจ เจนเฉˆ, เจ–เจผเจพเจธเจ•เจฐ เจœเจฆเฉ‹เจ‚ เจกเฉŒเจ•เจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ.

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹